1
我在我的應用程序中有幾個動態模塊。我有他們每個人的設置。我想在模塊啓動之前註冊每個模塊的設置。我發現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
有人有一個想法,它必須是如何工作的?