我们如何在Autofac配置Json / XML文件中使用InstancePerMatchingLifetimeScope

时间:2019-07-18 14:43:40

标签: dependency-injection autofac

如何在Autofac提供的配置(Json / Xml)中将范围注册为InstancePerMatchingLifetimeScope。到目前为止,它把我的异常视为“无效范围”。

2 个答案:

答案 0 :(得分:1)

Autofac配置当前不支持每个匹配生存期范围的实例。 You can see the code here where lifetime scope values are parsed中有一个table in the documentation showing what is currently supported-请确保滚动到表格的右侧,以便查看有效值列表。

答案 1 :(得分:0)

我尚未测试此解决方案。

请确保您在配置中使用了正确的字符串,请尝试以下操作

{
  "instanceScope": "per-matching-lifetime" 
}

我想您可以通过创建自定义模块来实现

 public class CustomModule : Module
 {
    public bool TagName { get; set; }

    protected override void Load(ContainerBuilder builder)
    {
       builder.Register<CustomType>().InstancePerMatchingLifetimeScope(TagName);
    }
 }

配置:

 {
    "modules": [{
        "type": "MyNamespace.CustomModule, MyAssembly",
        "properties": {
           "TagName": "customRequest"
         }
     }]
 }

如果这样做没有帮助,请提供有关项目类型的其他详细信息(asp.net核心/asp.net mvc),异常详细信息和堆栈跟踪。