internal static object QueryInternal(this FastRpcClient fastRpcClient, string title, ICustomTuple customTuple, Type returnType, IRpcSerializer rpcSerializer, string extention = null, bool throwIfErrorResponseCode = false) { if (rpcSerializer == null) { throw new ArgumentNullException(nameof(rpcSerializer)); } if (customTuple == null) { throw new ArgumentNullException(nameof(customTuple)); } var encoding = RpcExtentionSettings.DefaultEncoding; var response = fastRpcClient.Query( encoding.GetBytes(title), encoding.GetBytes(rpcSerializer.Serialize(customTuple)), extention == null ? FrameFormat.EmptyBytes : encoding.GetBytes(extention), throwIfErrorResponseCode); if (returnType == typeof(void)) { return(null); } var responseContent = response.ReadContentString(); if (string.IsNullOrEmpty(responseContent)) { return(null); } return(rpcSerializer.Deserialize(responseContent, returnType)); }
internal static object QueryInternal(this FastRpcClient fastRpcClient, string title, ICustomTuple customTuple, Type returnType, IBinarySerializer serializer, string extention = null, bool throwIfErrorResponseCode = true) { if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } if (customTuple == null) { throw new ArgumentNullException(nameof(customTuple)); } var encoding = NetworkSettings.TitleExtentionEncoding; var response = fastRpcClient.Query( encoding.GetBytes(title), serializer.Serialize(customTuple), extention == null ? FrameFormat.EmptyBytes : encoding.GetBytes(extention), throwIfErrorResponseCode); if (returnType == typeof(void)) { return(null); } if (response.ContentBytes == null) { return(null); } return(serializer.Deserialize(response.ContentBytes, returnType)); }
public object Proceed(ProxyBase proxyTarget, string title, Type parameterTupleType, object[] parameterArray, Type returnType) { var customTuple = (ICustomTuple)ObjectFactory.CreateInstance(parameterTupleType); customTuple.Fill(parameterArray); using (var fastRpcClient = new FastRpcClient(proxyTarget.__IP, proxyTarget.__Port)) { return(fastRpcClient.QueryInternal(title, customTuple, returnType, proxyTarget.__RpcSerializer, throwIfErrorResponseCode: true, extention: proxyTarget.__Extention)); } }