Exemplo n.º 1
0
        public DelegateSubscription(Delegate handler, SubscriptionOptions options)
        {
            Check.NotNull(handler, nameof(handler));
            Check.NotNull(options, nameof(options));

            _method = new SubscribedMethod(_ => handler.Target, handler.Method, options);
        }
        GetMessageArgumentResolver(SubscribedMethod method)
        {
            var parameterInfo = method.Parameters[0];
            var resolver      = GetMessageArgumentResolver(parameterInfo, method.MethodInfo);

            return(resolver, parameterInfo.ParameterType, resolver.GetMessageType(parameterInfo.ParameterType));
        }
 public object[] GetAdditionalParameterValues(SubscribedMethod methodInfo) =>
 methodInfo.Parameters
 .Skip(1)
 .Select(parameterInfo =>
         GetAdditionalArgumentResolver(parameterInfo, methodInfo.MethodInfo)
         .GetValue(parameterInfo.ParameterType))
 .ToArray();
Exemplo n.º 4
0
        public DelegateSubscription(Delegate handler, SubscriptionOptions options)
        {
            if (handler == null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            _method = new SubscribedMethod(handler.Target, new SubscribedMethodInfo(handler.Method, options?.Exclusive, options?.Parallel, options?.MaxDegreeOfParallelism));
        }
 public IEnumerable <IAdditionalArgumentResolver> GetAdditionalArgumentsResolvers(SubscribedMethod method) =>
 method.Parameters.Skip(1).Select(
     parameterInfo => GetAdditionalArgumentResolver(parameterInfo, method.MethodInfo));
        public (IMessageArgumentResolver resolver, Type messageType) GetMessageArgumentResolver(SubscribedMethod methodInfo)
        {
            var resolver = GetMessageArgumentResolver(methodInfo.Parameters[0], methodInfo.MethodInfo);

            return(resolver, resolver.GetMessageType(methodInfo.Parameters[0].ParameterType));
        }