我通过属性在1个LUIS对话框中使用2个LUIS模型[LuisModel("model1", "")][LuisModel("model2", "")][Serializable]public class LuisDialog我需要从配置文件中获取这些模型。在Autofac中,我只能注册1builder.Register(c => new LuisModelAttribute("model1", ""))...如何从配置中设置多个Luis模型? 最佳答案 我认为这行不通,因为LuisModel被注入到正在注册的LuisService中(这可能是配置中的下一行),而LuisService只期望一个模型而不是它们的数组。我认为可以起作用的方式是,应该将多个构造函数的model参数值注册到每个模型中,而不是将模型注册到Autofac容器中(请参见)。这样,当您解析基于LuisService的对话框时,它将在准备接收一系列服务时注入多个LuisDialog(请参见this)。我没有尝试过,但是您可以看到类似的东西是否有效:var model1 = new LuisModelAttribute("model1", "");var model2 = new LuisModelAttribute("model2", "");builder.RegisterType<LuisService>() .WithParameter("model", model1) .Keyed<ILuisService>(FiberModule.Key_DoNotSerialize) .AsImplementedInterfaces() .SingleInstance(); or // .InstancePerLifetimeScope()builder.RegisterType<LuisService>() .WithParameter("model", model2) .Keyed<ILuisService>(FiberModule.Key_DoNotSerialize) .AsImplementedInterfaces() .SingleInstance(); or // .InstancePerLifetimeScope()或者,您可以使用ILuisService并将RegisterInstance的实例注册为其特定模型。 10-05 23:21