更新了网络服务接口定义

This commit is contained in:
CortexCore
2023-06-07 02:02:14 +08:00
parent 08b05f8a74
commit b2444fd909
2727 changed files with 20455 additions and 4448 deletions

View File

@@ -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;
}
}
}