У меня есть служба, которая зарегистрирована в моем контейнере как один экземпляр
public class MyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<MyService>()
.As<IMyService>()
.SingleInstance();
}
}
Контейнер создается как показано ниже
public static IContainer SetupContainer()
{
var builder = new ContainerBuilder();
var moduleTypes = TypeCache.GetTypes(x => x.IsClassEx() && !x.IsAbstractEx() && x.ImplementsInterfaceEx<IModule>());
foreach (var moduleType in moduleTypes)
{
if (Activator.CreateInstance(moduleType) is IModule module)
builder.RegisterModule(module);
}
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
builder.RegisterAssemblyModules(assemblies);
var result = builder.Build();
return result;
}
Все это прекрасно работает в обычном коде - яможет внедрить мой сервис и его разрешение разрешено, как я ожидаю
Однако, когда я пытаюсь внедрить свой сервис в контроллер веб-API, служба снова разрешается, но Autofac дает мне НОВЫЙ экземпляр моего сервиса
Как я могу предотвратить такое поведение, чтобы внедрить первоначально созданный экземпляр?