public ClientActionExecutingContext(Guid clientProxyId,
                                     IServiceProvider serviceProvider,
                                     string?optionsName,
                                     IOnceCall onceCall,
                                     InstanceMethod instanceMethod,
                                     Func <object?, Task>?callback,
                                     CancellationToken token,
                                     ContractInfo contract,
                                     ContractMethod contractMethod,
                                     ReadStream?stream,
                                     Dictionary <string, object?> header,
                                     object?[] pureArgs)
 {
     ClientProxyId     = clientProxyId;
     StartTime         = DateTimeOffset.Now;
     ServiceProvider   = serviceProvider;
     OnceCall          = onceCall;
     InstanceMethod    = instanceMethod;
     Callback          = callback;
     Contract          = contract;
     ContractMethod    = contractMethod;
     CancellationToken = token;
     Stream            = stream;
     PureArgs          = pureArgs;
     OptionsName       = optionsName;
     Header            = header;
 }
 public ActionExecutingContext(IServiceProvider serviceProvider,
                               Dictionary <string, object?> header,
                               Instance instance,
                               MethodInfo instanceMethodInfo,
                               ContractMethod contractMethod,
                               object?[] args,
                               object?[] pureArgs,
                               ActionInfo actionInfo,
                               ProxyStream?stream,
                               ContractInfo contract,
                               ChannelType channelType,
                               Func <object?, Task>?callback,
                               CancellationToken token)
 {
     Properties        = new Dictionary <object, object?>();
     StartTime         = DateTimeOffset.Now;
     ServiceProvider   = serviceProvider;
     ChannelType       = channelType;
     Header            = header;
     InstanceMethod    = instance.Methods.Find(i => i.MethodInfo == instanceMethodInfo) !;
     ContractMethod    = contractMethod;
     Instance          = instance;
     Args              = args;
     PureArgs          = pureArgs;
     CallbackType      = GetFuncType(args);
     ActionInfo        = actionInfo;
     Callback          = callback;
     Stream            = stream;
     Contract          = contract;
     CancellationToken = token;
     ResetProps();
 }