static void Main(string[] args) { InjectContainer.RegisterType <IDomainRepository, DomainRepository>(); InjectContainer.RegisterType <IEventStorage, SQLServerEventStorage>(); InjectContainer.RegisterInstance <IEventPublisher>(new RabbitMQEventPublisher("amqp://localhost:5672")); InjectContainer.RegisterType <IEventDBConnectionStringProvider, AppSettingEventDBConnectionStringProvider>(); //这一部分需要重构到配置文件中 InjectContainer.RegisterType <IInventoryReadDBConnectionStringProvider, AppsettingInventoryReadDBConnectionStringProvider>(); InjectContainer.RegisterType <IInventoryWriteDBConnectionStringProvider, AppsettingInventoryWriteDBConnectionStringProvider>(); InjectContainer.RegisterType <IInventoryReportDataAccessor, InventoryReportDataAccessor>(); InjectContainer.RegisterType <IRentalReadDBConnectionStringProvider, AppsettingRentalReadDBConnectionStringProvider>(); InjectContainer.RegisterType <IRentalWriteDBConnectionStringProvider, AppsettingRentalWriteDBConnectionStringProvider>(); InjectContainer.RegisterType <IRentalReportDataAccessor, RentalReportDataAccessor>(); InjectContainer.RegisterType <ICommandTracker, SignalRCommandTracker>(); var handlers = BuildHandlerConfigurations(); HandlerRegister register = new HandlerRegister(); foreach (var handler in handlers) { Console.WriteLine($"Starting handler '{handler.Name}'"); RegisterCommandHandlers(handler.LibraryName); RegisterEventHandlers(handler.LibraryName); register.RegisterAndStart(handler.LibraryName); Console.WriteLine($"Started handler '{handler.Name}'"); } }
private void InjectService() { InjectContainer.RegisterInstance <ICommandPublisher>(new RabbitMQCommandPublisher("amqp://localhost:5672")); InjectContainer.RegisterType <IInventoryReadDBConnectionStringProvider, AppsettingInventoryReadDBConnectionStringProvider>(); InjectContainer.RegisterType <IInventoryWriteDBConnectionStringProvider, AppsettingInventoryWriteDBConnectionStringProvider>(); InjectContainer.RegisterType <IInventoryReportDataAccessor, InventoryReportDataAccessor>(); InjectContainer.RegisterType <ICommandTracker, SignalRCommandTracker>(); }
protected virtual void BeforeInject() { InjectContainer.RegisterType <IConfigurationReader, ConfigurationReader>(); InjectContainer.RegisterInstance <ILogHelper>(new Log4netHelper()); #if DEBUG InjectContainer.RegisterInstance <IStringEncrypter>(new PlainTextEncrypter()); #else InjectContainer.RegisterInstance <IStringEncrypter>(new StringEncrypter()); #endif }
protected virtual void InjectCommonLibraries() { InjectContainer.RegisterType <IQueryService, QueryService>(); InjectContainer.RegisterInstance <ICommandBus>(new CommandBus()); }