我尝试通过阅读此博客将 DI 应用到 Azure Function 中。Azure Function 中的注入服务属于另一个使用 Structuremap for DI 的项目。我的问题是我无法将 Structuremap 注册表添加到 Azure Function Startup。下面是一个 Startup 类的例子
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”问题的错误消息。我不知道我到底想念什么。有没有人有任何解决方案?