Есть ли способ зарегистрировать компоненты в Autofa c, если в настройках приложения существует определенная информация о конфигурации?
Например:
Если в файле конфигурации существует раздел HistorianSdk, зарегистрируйте этот слой.
Пример настроек приложения
protected override void Load(ContainerBuilder builder)
{
**// Todo: do this based on config file**
RegisterHistorianSdkLayer(builder);
}
private void RegisterHistorianSdkLayer(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(typeof(TagsReader).GetTypeInfo().Assembly)
.Where(x => x.Namespace != null && x.Namespace.Contains("Repositories"))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
builder.Register(c =>
{
var config = c.Resolve<IConfiguration>();
var sdkConfigurations =
config.GetSection("Plugins:HistorianSdk").Get<IEnumerable<HistorianSdkConfig>>();
return sdkConfigurations;
}).SingleInstance();
builder.RegisterType<DataPointMapper>()
.AsSelf()
.SingleInstance();
builder.RegisterType<Domain.HistorianSdk.Config.ConnectionFactory>()
.AsSelf()
.InstancePerDependency();
}
Если да, как лучше всего это сделать? Заранее спасибо.