gpt4 book ai didi

azure - 对于通过 IoC 的非函数方法,ExecutionContext 为 null,替代 ExecutionContext.FunctionAppDirectory

转载 作者:行者123 更新时间:2023-12-02 23:44:14 25 4
gpt4 key购买 nike

ExecutionContext 可用于函数参数。

但是,它不能通过依赖注入(inject)供其他方法使用,包括 Functions 的构造函数,如下所示:

    public class FunctionClass
{

IOtherClass _otherclass;
public FunctionClass(ExecutionContext context, //excetpion
IOtherClass otherclass) //excetpion
{
_otherclass = IOtherClass otherclass
}

[FunctionName("Car")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
HttpRequest req, ExecutionContext context)
{
}
}

public class OtherClass:IOtherClass
{
public OtherClass(ExecutionContext context) //excetpion
{}
}

我需要访问 ExecutionContext.FunctionAppDirectory,但不想传递 ExecutionContext,因为想改用 IoC。

是否有其他方法可以获取 ExecutionContext.FunctionAppDirectory 的值?

VS 2017

Azure 函数 2.x

最佳答案

我们可以使用ExecutionContextOptions来获取应用程序文件夹:

public class FunctionClass
private ExecutionContextOptions context;

public FunctionClass(IOptions<ExecutionContextOptions> executionContext) {
this.context = executionContext.Value;

var path = Path.GetFullPath(Path.Combine(context.AppDirectory, "extra.json"));

}
}

注意:上述工作使用 VS 2019 和 Azure Functions 3.x

参见:

关于azure - 对于通过 IoC 的非函数方法,ExecutionContext 为 null,替代 ExecutionContext.FunctionAppDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55093404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com