У меня есть служба с отслеживанием состояния Service Fabric, которая содержит как цикл RunAsync, так и прослушиватель веб-API OWIN. Можно ли добавить внедрение зависимостей как в унаследованный класс StatefulService, так и в контроллеры API? Я действительно был в состоянии получить только одно или другое.
Если я помещу логику контейнера в Startup.cs, я смогу легко получить DI для контроллеров веб-API, но не для службы с отслеживанием состояния.
Если я помещу логику контейнера в Program.cs, я смогу получить ее для службы с отслеживанием состояния, но не для веб-API. (на самом деле это больше похоже на сервисный локатор, но в данном случае меня это устраивает)
Программа.cs
private static void Main()
{
var builder = new ContainerBuilder();
builder.RegisterModule<MyModule>();
var container = builder.Build();
ILogger logger = container.Resolve<ILogger>();
ServiceRuntime.RegisterServiceAsync("MyService", (context) => new MyService(context, logger)).GetAwaiter().GetResult();
}
Без передачи IContainer в конструктор StatefulService я понятия не имею, как я могу получить его для инициализации запуска для веб-API, чтобы установить DependencyResolver.