更新了网络服务接口定义
This commit is contained in:
@@ -39,11 +39,12 @@ namespace BITKit
|
||||
}
|
||||
}
|
||||
|
||||
public static object Read<T>(byte[] buffer)
|
||||
public static object Read<T>(byte[] buffer) => (T)ReadAsValue(buffer);
|
||||
public static object ReadAsValue(byte[] buffer)
|
||||
{
|
||||
using var ms = new MemoryStream(buffer);
|
||||
using var reader = new BinaryReader(ms);
|
||||
return (T)Read(reader);
|
||||
return Read(reader);
|
||||
}
|
||||
public static object Read(BinaryReader reader)
|
||||
{
|
||||
@@ -74,7 +75,7 @@ namespace BITKit
|
||||
public static void Write(BinaryWriter writer, object value)
|
||||
{
|
||||
var typeName = value.GetType().FullName;
|
||||
writer.Write(typeName);
|
||||
writer.Write(typeName!);
|
||||
if (netReaders.TryGetValue(typeName, out var netReader))
|
||||
{
|
||||
netReader.WriteBinaryAsObject(writer,value);
|
||||
@@ -85,9 +86,12 @@ namespace BITKit
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception(string.Format("没有找到{0}而二进制写入方法", value.GetType().Name));
|
||||
throw new Exception($"没有找到{value.GetType().Name}的Binary写入方法");
|
||||
}
|
||||
}
|
||||
public static bool IsSupport(object obj) => IsSupport(obj.GetType().FullName);
|
||||
public static bool IsSupport(Type type) => IsSupport(type.FullName);
|
||||
public static bool IsSupport<T>() => IsSupport(typeof(T).FullName);
|
||||
public static bool IsSupport(string typeName)
|
||||
{
|
||||
if (netReaders.ContainsKey(typeName))
|
||||
@@ -100,6 +104,18 @@ namespace BITKit
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static bool IsSupport(Type type) => IsSupport(type.FullName);
|
||||
|
||||
|
||||
|
||||
public static bool TryWrite(object obj, out byte[] bytes)
|
||||
{
|
||||
if (IsSupport(obj))
|
||||
{
|
||||
bytes = WriteAsBytes(obj);
|
||||
return true;
|
||||
}
|
||||
bytes = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user