C# Azure函数-您能否在函数作用域之前访问IServiceProvider?
您好,我有一个用例,希望在azure函数项目中调用函数之前访问IServiceProvider 尝试:C# Azure函数-您能否在函数作用域之前访问IServiceProvider?,c#,azure-functions,C#,Azure Functions,您好,我有一个用例,希望在azure函数项目中调用函数之前访问IServiceProvider 尝试: 使用IWebJobsStartup cs文件,我能够在调用函数之前访问serviceCollection。最后,我尝试了这段代码 var serviceProvider = services.BuildServiceProvider(); serviceProvider.GetRequiredService<IAccountAPITests>(); var servicePr
var serviceProvider = services.BuildServiceProvider();
serviceProvider.GetRequiredService<IAccountAPITests>();
var serviceProvider=services.BuildServiceProvider();
serviceProvider.GetRequiredService();
public TestAutomationFunction
(
IServiceProvider rootServiceProvider
)
{
_integrationTestService = rootServiceProvider.GetRequiredService<IIntegrationTestService>();
}
公共测试自动化功能
(
IServiceProviderRootServiceProvider
)
{
_integrationTestService=rootServiceProvider.GetRequiredService();
}
这很好,但问题是函数的作用域是有限的,因此在其中解决的任何问题都将绑定到其相同的作用域
我尽了最大的努力画了一个viso,说明为什么我在ASP.net中没有这个问题,为什么我在函数中有这个问题
我希望在调用函数之前访问IServiceProvider,以确保我的服务不在同一范围内。或者在调用函数后,在spereate作用域中使用解析我的服务
当然,我可以将包X singleton更改为作用域,但我的用例并不像它在堆栈中那么简单,我必须一直这样做
这并不能完全回答我的问题,但它使我的问题成为一个沉默点 “不要从单一服务解析作用域服务。这可能会导致服务在处理后续请求时的状态不正确。可以从作用域服务或临时服务解析单一服务。” 我将重新工作我的堆栈,不允许这种情况发生,之后我就不必担心这个问题