У меня есть несколько динамических модулей в моем приложении. У меня есть настройки для каждого из них. Я хочу зарегистрировать настройки для каждого модуля до начала работы модуля. Я нашел метод InstancePerMatchingLifetimeScope, но у меня нет идеи, как он может работать.Autofac InstancePerMatchingLifetimeScope
using System;
using Autofac;
public class Program
{
public static void Main()
{
var builder = new ContainerBuilder();
builder.RegisterType<Settings1>().InstancePerMatchingLifetimeScope("1").As<ISettings>();
builder.RegisterType<Settings2>().InstancePerMatchingLifetimeScope("2").As<ISettings>();
var container = builder.Build();
using (var lifetimeScope = container.BeginLifetimeScope("1"))
{
lifetimeScope.Resolve<ISettings>().Run();
}
using (var lifetimeScope = container.BeginLifetimeScope("2"))
{
container.Resolve<ISettings>().Run();
}
}
}
public interface ILog
{
void Run();
}
public interface ISettings
{
void Run();
}
public class Log : ILog
{
public void Run()
{
Console.WriteLine("Log");
}
}
public class Settings1 : ISettings
{
public void Run()
{
Console.WriteLine("Settings1");
}
}
public class Settings2 : ISettings
{
public void Run()
{
Console.WriteLine("Settings2");
}
}
Пример https://dotnetfiddle.net/cEw90l
Кто-то есть идея, как она должна работать?