/// <summary> /// 消息处理器已注册异常 /// </summary> /// <param name="messageTypeName"></param> /// <param name="messageHandlerType"></param> /// <param name="registry"></param> /// <param name="innerException"></param> public MessageHandlerDuplicateRegistrationException(string messageTypeName, Type messageHandlerType, IMessageHandlerRegistry registry, Exception innerException) : base($"MessageHandler for message type \"{messageTypeName}\" has registerd by \"{messageHandlerType.FullName}\" in \"{registry.RegistryName}\"", innerException) { MessageTypeName = messageTypeName; MessageHandlerType = messageHandlerType; Registry = registry; }
public static IMessageHandlerRegistry BuildMessageHandlerRegistry(IMessageHandlerRegistry messageHandlerRegistry, IServiceProvider serviceProvider) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (messageHandlerRegistry == null) { throw new ArgumentNullException(nameof(messageHandlerRegistry)); } var options = serviceProvider.GetService <IOptions <MessagingOptions> >()?.Value ?? new MessagingOptions(); var processors = options.MessageProcessors.ToImmutableArray(); var partManager = serviceProvider.GetRequiredService <ApplicationPartManager>(); var messageHandlerFeature = new MessageHandlerFeature(); partManager.PopulateFeature(messageHandlerFeature); var loggerFactory = serviceProvider.GetService <ILoggerFactory>(); var logger = loggerFactory?.CreateLogger("MessageHandlerRegistration"); RegisterMessageHandlerTypes(messageHandlerFeature.MessageHandlers, messageHandlerRegistry, processors, logger); return(messageHandlerRegistry); }
public MessageHandler( IMessageHandlerRegistry messageHandlerRegistry, ITypeCreator typeCreator ) { _messageHandlerRegistry = messageHandlerRegistry; _typeCreator = typeCreator; }
public ConsumerConfiguration(IDictionary <string, string> configuration, IMessageHandlerRegistry messageHandlerRegistry, IHandlerUnitOfWorkFactory unitOfWorkFactory, ITopicSubscriberScopeFactory topicSubscriberScopeFactory) { _configuration = configuration; MessageHandlerRegistry = messageHandlerRegistry; UnitOfWorkFactory = unitOfWorkFactory; TopicSubscriberScopeFactory = topicSubscriberScopeFactory; }
private static void RegisterMessageHandlerTypes( IEnumerable <Type> types, IMessageHandlerRegistry messageHandlerRegistry, ImmutableArray <IContextualProvider <IMessageProcessor> > processors, ILogger logger) { foreach (var type in types) { RegisterMessageHandlerType(type, messageHandlerRegistry, processors, logger); } }
public MessageDispatcher(IMessageHandlerRegistry messageHandlerRegistry, IServiceProvider serviceProvider) { if (messageHandlerRegistry == null) { throw new ArgumentNullException(nameof(messageHandlerRegistry)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } _messageHandlerRegistry = messageHandlerRegistry; _serviceProvider = serviceProvider; }
public LocalMessageDispatcher(IMessageHandlerRegistry messageHandlerRegistry, IHandlerUnitOfWorkFactory handlerUnitOfWorkFactory) { if (messageHandlerRegistry == null) { throw new ArgumentNullException(nameof(messageHandlerRegistry)); } if (handlerUnitOfWorkFactory == null) { throw new ArgumentNullException(nameof(handlerUnitOfWorkFactory)); } _messageHandlerRegistry = messageHandlerRegistry; _unitOfWorkFactory = handlerUnitOfWorkFactory; }
private static void RegisterMessageHandlerType( Type handlerType, IMessageHandlerRegistry messageHandlerRegistry, ImmutableArray <IContextualProvider <IMessageProcessor> > processors, ILogger logger) { var inspector = new MessageHandlerInspector(handlerType); var memberDescriptors = inspector.GetHandlerDescriptors(); foreach (var memberDescriptor in memberDescriptors) { var registration = CreateMessageHandlerRegistration(memberDescriptor, processors); messageHandlerRegistry.Register(registration); logger?.LogDebug($"Registered handler of type '{handlerType}' for message-type '{memberDescriptor.MessageType}'."); } }
public NServiceBusDispatcher(IBuilder builder, ReadOnlySettings settings, JsonSerializerSettings jsonSettings) { _builder = builder; _bus = builder.Build <IBus>(); _eventFactory = builder.Build <IMessageCreator>(); _mapper = builder.Build <IMessageMapper>(); _handlerRegistry = builder.Build <IMessageHandlerRegistry>(); _objectInvoker = builder.Build <IInvokeObjects>(); _parallelHandlers = settings.Get <Boolean>("ParallelHandlers"); _maxRetries = settings.Get <Int32>("MaxRetries"); _dropEventFatal = settings.Get <Boolean>("EventDropIsFatal"); _maxQueueSize = settings.Get <Int32>("MaxQueueSize"); _invokeCache = new ConcurrentDictionary <String, IList <Type> >(); var parallelism = settings.Get <Int32>("Parallelism"); _parallelOptions = new ParallelOptions { MaxDegreeOfParallelism = parallelism, }; _processor = new TaskProcessor(parallelism); }
public RemoteMessageDispatcher(IMessageHandlerRegistry messageHandlerRegistry, IMessageRouterFactory messageRouterFactory, ITypeConversion typeConversion, IServiceProvider serviceProvider, ILogger <RemoteMessageDispatcher> logger) { if (messageHandlerRegistry == null) { throw new ArgumentNullException(nameof(messageHandlerRegistry)); } if (messageRouterFactory == null) { throw new ArgumentNullException(nameof(messageRouterFactory)); } if (typeConversion == null) { throw new ArgumentNullException(nameof(typeConversion)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } _messageRouterFactory = messageRouterFactory; _typeConversion = typeConversion; _serviceProvider = serviceProvider; _logger = logger; _localMessageDispatcher = new MessageDispatcher(messageHandlerRegistry, serviceProvider); _messageRouter = _messageRouterFactory.CreateMessageRouter(new SerializedMessageHandler(this)); _lifetimeManager = BuildLifetimeManager(); }
public MessageDispatcher(IMessageListener messageListener, IMessageHandlerRegistry messageHandlerRegistry) { this.messageListener = messageListener; this.messageHandlerRegistry = messageHandlerRegistry; }
public MessageHandlerRegistryInitializer( IMessageHandlerRegistry commandFactory ) { _commandRegistry = commandFactory; }
public LocalMessageDispatcherBuilder WithMessageHandlerRegistry(IMessageHandlerRegistry messageHandlerRegistry) { _messageHandlerRegistry = messageHandlerRegistry; return(this); }
public LocalMessageDispatcherBuilder() { _messageHandlerRegistry = Dummy.Of <IMessageHandlerRegistry>(); }