This commit is contained in:
CortexCore
2024-06-13 16:02:49 +08:00
parent ceea55b67a
commit 4a2ab82e20
4 changed files with 57 additions and 35 deletions

View File

@@ -234,6 +234,10 @@ namespace BITKit.Net
var isAwaitable = methodInfo.ReturnType.GetMethod(nameof(Task.GetAwaiter)) != null;
var handle = _rpcHandles[path];
object value = null;
if (methodInfo.GetParameters().Length is 0)
{
pars = new object[]{};
}
if (isAwaitable)
{
dynamic result = methodInfo.Invoke(handle, pars)!;
@@ -250,8 +254,7 @@ namespace BITKit.Net
}
else
{
returnWriter.Write(false);
returnWriter.Write("未找到对应的Rpc方法");
throw new Exception("未找到对应的Rpc方法");
}
}
@@ -261,23 +264,13 @@ namespace BITKit.Net
.As<object[]>()[0];
if (_rpc.TryGetValue(commandObj.GetType()!.FullName!, out var func))
{
try
{
var value = await func.As<Func<object, UniTask<object>>>().Invoke(commandObj);
returnWriter.Write(true);
BITBinary.Write(returnWriter, value);
}
catch (Exception e)
{
//BIT4Log.LogException(e);
returnWriter.Write(false);
returnWriter.Write(e.Message);
}
var value = await func.As<Func<object, UniTask<object>>>().Invoke(commandObj);
returnWriter.Write(true);
BITBinary.Write(returnWriter, value);
}
else
{
returnWriter.Write(false);
returnWriter.Write("未找到对应的command方法");
throw new Exception("未找到对应的Rpc方法");
}
}
{
@@ -287,6 +280,11 @@ namespace BITKit.Net
}
catch (Exception e)
{
returnWriter.Write(false);
returnWriter.Write(e.Message);
var _bytes = returnMS.ToArray();
server.Send(Id, _bytes, KcpChannel.Reliable);
BIT4Log.LogException(e);
}
}