Я пытаюсь применить DI в Azure Function, прочитав этот блог . Внедренный сервис в Azure Function принадлежит другому проекту, который использует Structuremap для DI. Моя проблема заключается в том, что я не могу добавить реестры Structuremap в запуск функции Azure. Вот пример класса запуска
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.Configure();
}
}
, и я попытался написать класс ContainerConfigurator (чтобы добавить эти реестры)
public static class ContainerConfigurator
{
public static void Configure(this IServiceCollection services)
{
var container = new Container(config =>
{
config.Scan(s =>
{
s.LookForRegistries();
s.WithDefaultConventions();
s.TheCallingAssembly();
});
config.Populate(services);
});
return container;
}
}
, а вот класс функции
public class FunctionX
{
private readonly IXService _xService;
public GetReports(IXService xService)
{
_xService = xService;
}
[FunctionName("GetX")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, ILogger log)
{
log.LogInformation("Get x");
return await Task.FromResult(new OkObjectResult("OK"));
}
}
когда я тестирую конечную точку, я получаю сообщение об ошибке для решения проблемы "IXService". Я не знаю точно, что я скучаю. У кого-нибудь есть решение?