首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecutionContext对于通过IoC的非函数方法为空,可替代ExecutionContext.FunctionAppDirectory

ExecutionContext对于通过IoC的非函数方法为空,可替代ExecutionContext.FunctionAppDirectory
EN

Stack Overflow用户
提问于 2019-03-11 07:21:44
回答 2查看 554关注 0票数 0

ExecutionContext可用于函数参数。

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

代码语言:javascript
复制
    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 Functon 2.x

EN

回答 2

Stack Overflow用户

发布于 2019-03-11 10:34:56

根据当前文档,只有在调用function方法时,ExecutionContext才在请求范围内可用。

代码语言:javascript
复制
[FunctionName("Car")]
public async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
    HttpRequest req, 
    ExecutionContext context //<--
) {

    var path = context.FunctionAppDirectory;

    //...
}

在初始化function类时,它还不能在用于注入的构造函数中使用。

票数 0
EN

Stack Overflow用户

发布于 2021-02-03 13:32:53

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

代码语言:javascript
复制
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运行

请参见:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55093404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档