示例#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);
        }
        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;
 }
        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;
 }
        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;
        }