static RpcExplicitParamsFuncDelegateEntryFactory() { if (typeof(TResult).IsConstructedGenericType) { var genericType = typeof(TResult).GetGenericTypeDefinition(); if (genericType == typeof(Task <>)) { Instance = RpcMethodEntryFactoryBuildingHelper.CreateEntryFactory <Func <TParams, TResult> >(typeof(RpcAsyncDelegateEntryFactory <, , , , ,>), typeof(TParams), typeof(TResult).GetGenericArguments()[0], typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsTaskFuncDelegateInvoker <TParams, TResult>)); } else { if (genericType == typeof(ValueTask <>)) { Instance = RpcMethodEntryFactoryBuildingHelper.CreateEntryFactory <Func <TParams, TResult> >(typeof(RpcAsyncDelegateEntryFactory <, , , , ,>), typeof(TParams), typeof(TResult).GetGenericArguments()[0], typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsFuncDelegateInvoker <TParams, TResult>)); } else { Instance = RpcMethodEntryFactoryBuildingHelper.CreateEntryFactory <Func <TParams, TResult> >(typeof(RpcDelegateEntryFactory <, , , , ,>), typeof(TParams), typeof(TResult), typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsFuncDelegateInvoker <TParams, TResult>)); } } } else { if (typeof(TResult) == typeof(Task)) { Instance = RpcMethodEntryFactoryBuildingHelper.CreateAsyncActionEntryFactory <Func <TParams, TResult> >(typeof(RpcAsyncDelegateEntryFactory <, , , ,>), typeof(TParams), typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsTaskActionDelegateInvoker <TParams>)); } else { if (typeof(TResult) == typeof(ValueTask)) { Instance = RpcMethodEntryFactoryBuildingHelper.CreateAsyncActionEntryFactory <Func <TParams, TResult> >(typeof(RpcAsyncDelegateEntryFactory <, , , ,>), typeof(TParams), typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsFuncDelegateInvoker <TParams, ValueTask>)); } else { Instance = RpcMethodEntryFactoryBuildingHelper.CreateEntryFactory <Func <TParams, TResult> >(typeof(RpcDelegateEntryFactory <, , , , ,>), typeof(TParams), typeof(TResult), typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsFuncDelegateInvoker <TParams, TResult>)); } } } }
static RpcExplicitParamsActionDelegateEntryFactory() { Instance = RpcMethodEntryFactoryBuildingHelper.CreateEntryFactory <Action <TParams> >(typeof(RpcDelegateEntryFactory <, , , , ,>), typeof(TParams), typeof(NullResult), typeof(ExplicitParamsObjectDeserializer <TParams>), ExplicitParamsModifierCache <TParams> .ModifierType, typeof(ExplicitParamsActionDelegateInvoker <TParams>)); }