C# Azure函数中的Autofac InstancePerRequest作用域

C# Azure函数中的Autofac InstancePerRequest作用域,c#,dependency-injection,inversion-of-control,autofac,azure-functions,C#,Dependency Injection,Inversion Of Control,Autofac,Azure Functions,我正在尝试注册一个依赖项,以便在每次运行Eventhub触发的Azure函数时共享一个实例(每次运行Azure函数时创建新实例) 我试着注册如下: builder.RegisterType<TrialClass>().As<ITrialClass>().InstancePerRequest(); builder.RegisterType().As().InstancePerRequest(); 但它没有说 从中看不到标记与“AutofacWebRequest”匹配的

我正在尝试注册一个依赖项,以便在每次运行Eventhub触发的Azure函数时共享一个实例(每次运行Azure函数时创建新实例)

我试着注册如下:

builder.RegisterType<TrialClass>().As<ITrialClass>().InstancePerRequest(); 
builder.RegisterType().As().InstancePerRequest();
但它没有说

从中看不到标记与“AutofacWebRequest”匹配的作用域 请求实例的范围

有办法处理这个案子吗

这里有两个问题:

  • 如今Azure函数中并不真正支持DI,这使得注册和注入变得困难
  • 事件集线器触发的函数不会在web请求的上下文中执行,因此Autofac支持的内置每个请求生存期将不起作用
  • 如果您现在的Autofac处于半工作状态,您可以尝试@mjwills的建议,并为给定的调用定义一个生存期范围(这不会像使用每请求功能那样简单,但可行)

    我们确实在WebJobs SDK和Host/Runtime函数中进行了一些工作,以增强DI故事。有些工作与您可以跟踪的.NET核心迁移相关或依赖。

    这里有两个问题:

  • 如今Azure函数中并不真正支持DI,这使得注册和注入变得困难
  • 事件集线器触发的函数不会在web请求的上下文中执行,因此Autofac支持的内置每个请求生存期将不起作用
  • 如果您现在的Autofac处于半工作状态,您可以尝试@mjwills的建议,并为给定的调用定义一个生存期范围(这不会像使用每请求功能那样简单,但可行)


    我们确实在WebJobs SDK和Host/Runtime函数中进行了一些工作,以增强DI故事。一些工作与您可以跟踪的.NET核心迁移相关或依赖。

    我认为Azure函数不支持DI。您如何解决依赖关系?我手动解决入口点类(它是一个.dll,负责大部分工作)从run.csxI不认为Azure函数正确支持DI是吗?你解决依赖关系了吗?我从run.csx手动解决入口点类(这是一个.dll,做了大部分工作)在我们的repo中的另一个相关问题:看起来他的评论被删除了,但您可以在此处找到有关Autofac生存期范围的更多信息:我们的回购协议中的另一个相关问题:他的评论似乎已被删除,但您可以在此处找到有关Autofac生存期范围的更多信息: