Я строю Autofac контейнера, как показано нижеКонфигурация Autofac - Как преобразовать раздел кода в Autofac Config
_container = ConfigureContainer(new ContainerBuilder()).Build();
У меня есть ConfigureContainer метод для создания/настройки Autofac ContainerBuilder ниже
private static ContainerBuilder ConfigureContainer(ContainerBuilder cb)
{
cb.RegisterModule(new QuartzAutofacFactoryModule());
cb.RegisterModule(new QuartzAutofacJobsModule(Assembly.GetExecutingAssembly()));
cb.Register(l => Logging.Logger.Instance()).As<ILogger>();
var reader = new ConfigurationSettingsReader();
cb.RegisterModule(reader);
// How do I convert following lines to Autofac Config?
cb.RegisterCollection<StandardTask>("IList<StandardTask>").As<IList<StandardTask>>();
cb.RegisterType<HealthMonitoringMessageDispatcherTask>().Named<StandardTask>("HealthMonitoringTask1").MemberOf("IList<StandardTask>");
cb.RegisterType<HealthMonitoringMessageDispatcherTask>().Named<StandardTask>("HealthMonitoringTask2").MemberOf("IList<StandardTask>");
cb.RegisterType<PurgeMessageDispatcherTask>().Named<StandardTask>("PurgeTask1");
cb.RegisterType<PurgeMessageDispatcherTask>().Named<StandardTask>("PurgeTask2");
return cb;
}
У меня есть Конфигурационная секция Autofac, как показано ниже
<autofac>
<components>
<!--<component type="NAB.Custom.Logging.Logger, NAB.Custom.Logging" service="NAB.Logging.Core.ILogger, NAB.Logging" />-->
<component type="NAB.Windows.ServicesConsole.Services.SchedulerService, NAB.Windows.ServicesConsole" service="NAB.Windows.ServicesConsole.Services.Core.ITopshelfService, NAB.Windows.ServicesConsole" />
<component type="NAB.Windows.ServicesConsole.Jobs.HealthMonitoringMessageDispatcherJob, NAB.Windows.ServicesConsole" />
<component type="NAB.Windows.ServicesConsole.Jobs.PurgeMessageDispatcherJob, NAB.Windows.ServicesConsole" />
</components>
</autofac>
Он разрешает сконфигурированный компьютер Понент из секции Пользовательские настройки правильно, но я хочу, чтобы переместить следующий регистраций из кода в разделе конфигурации пользовательских, а также, где я не могу найти правильное решение для ...
// How do I convert following lines to Autofac Config?
cb.RegisterCollection<StandardTask>("IList<StandardTask>").As<IList<StandardTask>>();
cb.RegisterType<HealthMonitoringMessageDispatcherTask>().Named<StandardTask>("HealthMonitoringTask1").MemberOf("IList<StandardTask>");
cb.RegisterType<HealthMonitoringMessageDispatcherTask>().Named<StandardTask>("HealthMonitoringTask2").MemberOf("IList<StandardTask>");
cb.RegisterType<PurgeMessageDispatcherTask>().Named<StandardTask>("PurgeTask1");
cb.RegisterType<PurgeMessageDispatcherTask>().Named<StandardTask>("PurgeTask2");
Любые предложения? Маленький фрагмент кода будет очень полезен. В основном я регистрирую с именем, а затем вставляя компоненты в коллекцию, которая является параметром конструктора одного из моих зарегистрированных объектов.
Wich версия * Autofac * вы используете? 'RegisterCollection' устарел с версии 2.' IEnumerable 'всегда разрешима и будет включать все зарегистрированные компоненты для сервиса' T'. Следующая документация может помочь вам понять, как использовать коллекцию с помощью autofac http://docs.autofac.org/en/latest/resolve/relationships.html#enumeration-ienumerable-b-ilist-b-icollection-b –