Пример #1
0
 public BinderFactory(IMemberResolver memberResolver, IIndexResolver indexResolver, IMethodResolver methodResolver, IOperatorResolver operatorResolver)
 {
     _memberResolver   = memberResolver;
     _indexResolver    = indexResolver;
     _methodResolver   = methodResolver;
     _operatorResolver = operatorResolver;
 }
Пример #2
0
 public static IMethodReference Resolve(this IMethodResolver resolver, IServiceDefinition serviceDefinition, MethodId methodId)
 {
     if (resolver.TryResolve(serviceDefinition, methodId, out var methodReference))
     {
         return(methodReference);
     }
     throw new MethodResolveException(serviceDefinition.Name, methodId);
 }
Пример #3
0
        public BinderFactory()
        {
            var overloadResolver = new OverloadResolver(new ArgumentConverter());

            _memberResolver   = new MemberResolver();
            _indexResolver    = new IndexResolver(overloadResolver);
            _methodResolver   = new MethodResolver(overloadResolver);
            _operatorResolver = new OperatorResolver(overloadResolver);
        }
 public RoutineCompletionNotificationHub(
     ICommunicatorProvider communicatorProvider,
     IServiceResolver serviceResolver,
     IMethodResolver methodResolver,
     IMethodStateStorageProvider methodStateStorageProvider)
 {
     _communicatorProvider       = communicatorProvider;
     _serviceResolver            = serviceResolver;
     _methodResolver             = methodResolver;
     _methodStateStorageProvider = methodStateStorageProvider;
     _onTimerTick = OnTimerTick;
 }
Пример #5
0
        public DependencyContainer(
            IServiceProvider fallbackProvider         = null,
            IEnumerable <Assembly> fallbackAssemblies = null,
            IMethodResolver methodResolver            = null,
            IMethodInvoker methodInvoker = null)
        {
            _extensions = new List <IResolverExtension>();

            _fallbackProvider   = fallbackProvider;
            _fallbackAssemblies = fallbackAssemblies ?? Enumerable.Empty <Assembly>();
            _methodResolver     = methodResolver ?? new DefaultMethodResolver(this);
            _methodInvoker      = methodInvoker ?? new DefaultMethodInvoker(this);
        }
        public CommunicationModelConfiguration(
            IEnumerable <IConfiguration> safeConfiguration,
            IServiceResolver serviceResolver,
            IMethodResolver methodResolver,
            IEventResolver eventResolver)
        {
            _serviceResolver = serviceResolver;
            _methodResolver  = methodResolver;
            _eventResolver   = eventResolver;

            var rootSection = safeConfiguration.FirstOrDefault()?.GetSection("dasync");

            _configMap = ReadConfiguration(rootSection);
        }
Пример #7
0
 public SingleMethodInvoker(
     ITransitionScope transitionScope,
     IServiceResolver serviceResolver,
     IMethodResolver methodResolver,
     ICommunicationSettingsProvider communicationSettingsProvider,
     ICommunicatorProvider communicatorProvider,
     ILocalMethodRunner localMethodRunner)
 {
     _transitionScope = transitionScope;
     _serviceResolver = serviceResolver;
     _methodResolver  = methodResolver;
     _communicationSettingsProvider = communicationSettingsProvider;
     _communicatorProvider          = communicatorProvider;
     _localMethodRunner             = localMethodRunner;
 }
Пример #8
0
        public MethodStateStorageProvider(
            ICommunicationSettingsProvider communicationSettingsProvider,
            IEnumerable <IConfiguration> safeConfiguration,
            IServiceResolver serviceResolver,
            IMethodResolver methodResolver,
            IEnumerable <IPersistenceMethod> persistenceMethods)
        {
            _communicationSettingsProvider = communicationSettingsProvider;
            _serviceResolver = serviceResolver;
            _methodResolver  = methodResolver;

            _configuration = safeConfiguration.FirstOrDefault()?.GetSection("dasync")
                             ?? (IConfiguration) new ConfigurationRoot(Array.Empty <IConfigurationProvider>());

            _persistenceMethods = persistenceMethods.ToDictionary(m => m.Type, m => m, StringComparer.OrdinalIgnoreCase);
        }
Пример #9
0
 public RabbitMQMessageListiningMethod(
     IConnectionManager connectionManager,
     IMessageHandler messageHandler,
     IEventSubscriber eventSubscriber,
     IEventIdProvider eventIdProvider,
     IServiceResolver serviceResolver,
     IMethodResolver methodResolver,
     ICommunicationModelConfiguration communicationModelConfiguration)
 {
     _connectionManager = connectionManager;
     _messageHandler    = messageHandler;
     _eventSubscriber   = eventSubscriber;
     _eventIdProvider   = eventIdProvider;
     _serviceResolver   = serviceResolver;
     _methodResolver    = methodResolver;
     _communicationModelConfiguration = communicationModelConfiguration;
 }
Пример #10
0
        public HttpRequestHandler(
            ISerializerProvider serializerProvider,
            IUniqueIdGenerator idGenerator,
            IRoutineCompletionNotifier routineCompletionNotifier,
            IServiceResolver serviceResolver,
            IMethodResolver methodResolver,
            ILocalMethodRunner localTransitionRunner)
        {
            _idGenerator = idGenerator;
            _routineCompletionNotifier = routineCompletionNotifier;
            _serviceResolver           = serviceResolver;
            _methodResolver            = methodResolver;
            _localTransitionRunner     = localTransitionRunner;

            _serializerProvider = serializerProvider;
            _jsonSerializer     = _serializerProvider.GetSerializer("json");
        }
Пример #11
0
        public void ResolveRequestWithoutSession(IMethodResolver methodResolver, IAttachmentResolver attachmentResolver)
        {
            methodResolver.MethodText         = MethodText;
            attachmentResolver.AttachmentText = AttachmentText;

            RequestMethod     = methodResolver.Resolve();
            RequestAttachment = attachmentResolver.Resolve();

            if (methodResolver.Error.Level == ErrorLevels.NeedNotice)
            {
                Error.Errors.Add(methodResolver.Error);
            }
            if (attachmentResolver.Error.Level == ErrorLevels.NeedNotice)
            {
                Error.Errors.Add(attachmentResolver.Error);
            }
        }
Пример #12
0
        public CommunicatorProvider(
            ICommunicationModelConfiguration communicationModelConfiguration,
            IEnumerable <IConfiguration> safeConfiguration,
            IServiceResolver serviceResolver,
            IMethodResolver methodResolver,
            IExternalCommunicationModel externalCommunicationModel,
            IEnumerable <ICommunicationMethod> communicationMethods)
        {
            _communicationModelConfiguration = communicationModelConfiguration;
            _serviceResolver            = serviceResolver;
            _methodResolver             = methodResolver;
            _externalCommunicationModel = externalCommunicationModel;

            _configuration = safeConfiguration.FirstOrDefault()?.GetSection("dasync")
                             ?? (IConfiguration) new ConfigurationRoot(Array.Empty <IConfigurationProvider>());

            _communicationMethods = communicationMethods.ToDictionary(m => m.Type, m => m, StringComparer.OrdinalIgnoreCase);
        }
Пример #13
0
        public EventAccessorExtractor(
            IMethodDisassembler methodDisassembler,
            IInstructionHelper instructionHelper,
            IMethodResolver methodResolver,
            IInstructionsCompiler instructionsCompiler,
            IParameterDeducer parameterDeducer)
        {
            ArgumentChecker.NotNull(methodDisassembler, nameof(methodDisassembler));
            ArgumentChecker.NotNull(instructionHelper, nameof(instructionHelper));
            ArgumentChecker.NotNull(methodResolver, nameof(methodResolver));
            ArgumentChecker.NotNull(instructionsCompiler, nameof(instructionsCompiler));
            ArgumentChecker.NotNull(parameterDeducer, nameof(parameterDeducer));

            _methodDisassembler = methodDisassembler;
            _instructionHelper = instructionHelper;
            _methodResolver = methodResolver;
            _instructionsCompiler = instructionsCompiler;
            _parameterDeducer = parameterDeducer;
        }
        public static IEnumerable <MethodInfo> ResolveMethods(this IMethodResolver methodResolver, IEnumerable <Type> types)
        {
            if (methodResolver is null)
            {
                throw new ArgumentNullException(nameof(methodResolver));
            }
            if (types is null)
            {
                throw new ArgumentNullException(nameof(types));
            }

            foreach (var type in types)
            {
                foreach (var method in methodResolver.ResolveMethods(type))
                {
                    yield return(method);
                }
            }
        }
Пример #15
0
        public EventAccessorExtractor(
            IMethodDisassembler methodDisassembler,
            IInstructionHelper instructionHelper,
            IMethodResolver methodResolver,
            IInstructionsCompiler instructionsCompiler,
            IParameterDeducer parameterDeducer)
        {
            ArgumentChecker.NotNull(methodDisassembler, nameof(methodDisassembler));
            ArgumentChecker.NotNull(instructionHelper, nameof(instructionHelper));
            ArgumentChecker.NotNull(methodResolver, nameof(methodResolver));
            ArgumentChecker.NotNull(instructionsCompiler, nameof(instructionsCompiler));
            ArgumentChecker.NotNull(parameterDeducer, nameof(parameterDeducer));

            _methodDisassembler   = methodDisassembler;
            _instructionHelper    = instructionHelper;
            _methodResolver       = methodResolver;
            _instructionsCompiler = instructionsCompiler;
            _parameterDeducer     = parameterDeducer;
        }
        internal ILGeneratorInstructionVisitor(IILGenerator generator,
                                               IDictionary <VariableReference, LocalBuilder> locals,
                                               ITypeResolver typeResolver,
                                               IMethodResolver methodResolver,
                                               IFieldResolver fieldResolver,
                                               IOpCodeMapper opCodeMapper)
        {
            ArgumentChecker.NotNull(generator, () => generator);
            ArgumentChecker.NotNull(locals, () => locals);
            ArgumentChecker.NotNull(typeResolver, () => typeResolver);
            ArgumentChecker.NotNull(methodResolver, () => methodResolver);
            ArgumentChecker.NotNull(fieldResolver, () => fieldResolver);
            ArgumentChecker.NotNull(opCodeMapper, () => opCodeMapper);

            _generator      = generator;
            _locals         = locals;
            _typeResolver   = typeResolver;
            _methodResolver = methodResolver;
            _fieldResolver  = fieldResolver;
            _opCodeMapper   = opCodeMapper;
        }
Пример #17
0
 public TransitionRunner(
     ITransitionScope transitionScope,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     //IServiceStateValueContainerProvider serviceStateValueContainerProvider,
     IUniqueIdGenerator idGenerator,
     ITaskCompletionSourceRegistry taskCompletionSourceRegistry,
     IServiceResolver serviceResolver,
     IMethodResolver methodResolver,
     IEventResolver eventResolver,
     ICommunicatorProvider communicatorProvider,
     IEventPublisherProvider eventPublisherProvider,
     IRoutineCompletionSink routineCompletionSink,
     ICommunicationSettingsProvider communicationSettingsProvider,
     IDefaultSerializerProvider defaultSerializerProvider,
     ISerializerProvider serializeProvder,
     IMethodStateStorageProvider methodStateStorageProvider,
     IValueContainerCopier valueContainerCopier,
     IEventSubscriber eventSubscriber,
     ITaskContinuationClassifier taskContinuationClassifier)
 {
     _transitionScope = transitionScope;
     _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider;
     //_serviceStateValueContainerProvider = serviceStateValueContainerProvider;
     _idGenerator = idGenerator;
     _taskCompletionSourceRegistry = taskCompletionSourceRegistry;
     _serviceResolver               = serviceResolver;
     _methodResolver                = methodResolver;
     _eventResolver                 = eventResolver;
     _communicatorProvider          = communicatorProvider;
     _eventPublisherProvider        = eventPublisherProvider;
     _routineCompletionSink         = routineCompletionSink;
     _communicationSettingsProvider = communicationSettingsProvider;
     _defaultSerializer             = defaultSerializerProvider.DefaultSerializer;
     _serializeProvder              = serializeProvder;
     _methodStateStorageProvider    = methodStateStorageProvider;
     _valueContainerCopier          = valueContainerCopier;
     _eventSubscriber               = eventSubscriber;
     _taskContinuationClassifier    = taskContinuationClassifier;
 }
Пример #18
0
        public void ResolveRequest(IMethodResolver methodResolver, ISessionResolver sessionResolver,
                                   IAttachmentResolver attachmentResolver)
        {
            methodResolver.MethodText = MethodText;
            sessionResolver.SessionText = SessionText;
            attachmentResolver.AttachmentText = AttachmentText;

            RequestMethod = methodResolver.Resolve();
            Session = sessionResolver.Resolve();
            RequestAttachment = attachmentResolver.Resolve();

            if (methodResolver.Error.Level == ErrorLevels.NeedNotice)
            {
                Error.Errors.Add(methodResolver.Error);
            }
            if (attachmentResolver.Error.Level == ErrorLevels.NeedNotice)
            {
                Error.Errors.Add(attachmentResolver.Error);
            }
            if (sessionResolver.Error.Level == ErrorLevels.NeedNotice)
            {
                Error.Errors.Add(sessionResolver.Error);
            }
        }
Пример #19
0
 public VelocityInvokeMemberBinder(string name, CallInfo callInfo, IMethodResolver methodResolver)
     : base(name, true, callInfo)
 {
     _methodResolver = methodResolver;
 }
Пример #20
0
        internal ILGeneratorInstructionVisitor(IILGenerator generator,
            IDictionary<VariableReference, LocalBuilder> locals,
            ITypeResolver typeResolver,
            IMethodResolver methodResolver,
            IFieldResolver fieldResolver,
            IOpCodeMapper opCodeMapper)
        {
            ArgumentChecker.NotNull(generator, () => generator);
            ArgumentChecker.NotNull(locals, () => locals);
            ArgumentChecker.NotNull(typeResolver, () => typeResolver);
            ArgumentChecker.NotNull(methodResolver, () => methodResolver);
            ArgumentChecker.NotNull(fieldResolver, () => fieldResolver);
            ArgumentChecker.NotNull(opCodeMapper, () => opCodeMapper);

            _generator = generator;
            _locals = locals;
            _typeResolver = typeResolver;
            _methodResolver = methodResolver;
            _fieldResolver = fieldResolver;
            _opCodeMapper = opCodeMapper;
        }