Azure 函数中的 Autofac InstancePerRequest 范围
Autofac InstancePerRequest scope in Azure Function
我正在尝试注册一个依赖项以共享每个 运行 的 Eventhub 触发的 Azure 函数的实例(每次 Azure 函数 运行s 创建新实例)。
我试过如下注册:
builder.RegisterType<TrialClass>().As<ITrialClass>().InstancePerRequest();
但是它没有说
No scope with a tag matching 'AutofacWebRequest' is visible from the
scope in which the instance was requested
有办法处理这种情况吗?
。
这里有两个问题:
- 如今 Azure Functions 并未真正支持 DI,这使得注册和注入变得困难。
- 事件中心触发的函数不会在 Web 请求的上下文中执行,因此 Autofac 支持的每个请求 生命周期内建将不起作用
如果您今天的 Autofac 处于半工作状态,您可以尝试@mjwills 的建议并为给定的调用定义生命周期范围(这不会像使用每个请求功能那样微不足道,但可行)。
我们确实在 WebJobs SDK 和函数 Host/Runtime 中开展工作以增强 DI 故事。一些工作与您可以跟踪的 .NET 核心迁移相关或依赖于该迁移 here.
我正在尝试注册一个依赖项以共享每个 运行 的 Eventhub 触发的 Azure 函数的实例(每次 Azure 函数 运行s 创建新实例)。
我试过如下注册:
builder.RegisterType<TrialClass>().As<ITrialClass>().InstancePerRequest();
但是它没有说
No scope with a tag matching 'AutofacWebRequest' is visible from the scope in which the instance was requested
有办法处理这种情况吗?
。
这里有两个问题:
- 如今 Azure Functions 并未真正支持 DI,这使得注册和注入变得困难。
- 事件中心触发的函数不会在 Web 请求的上下文中执行,因此 Autofac 支持的每个请求 生命周期内建将不起作用
如果您今天的 Autofac 处于半工作状态,您可以尝试@mjwills 的建议并为给定的调用定义生命周期范围(这不会像使用每个请求功能那样微不足道,但可行)。
我们确实在 WebJobs SDK 和函数 Host/Runtime 中开展工作以增强 DI 故事。一些工作与您可以跟踪的 .NET 核心迁移相关或依赖于该迁移 here.