我想使用 AutoFac 将引用注入(inject)对象的构造函数。但是,实际对象本身并未注册。我正在为 ASP.NET MVC Controller 工厂执行此操作, Controller 不会在其中注册,但构造函数参数会注册。我设法统一执行此操作,但我在使用 AutoFac 时遇到了问题。
这可能吗?
谢谢。
最佳答案
让 Autofac 以 Unity 的方式解析任何未注册的类型:
builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
描述了此解决方案的早期版本 here .
但是,我为 Steven 的答案 +1,并鼓励您使用它而不是上面的答案。使用 Autofac,您最好使用预构建的 MVC 集成。在 MVC3 上设置是小菜一碟 - 请参阅 these step-by-step instructions .
即使您建立自己的 Controller 工厂,如果您不依赖于“解决任何问题”行为,生活也会更加可预测:)
关于c# - 无论存在与否,AutoFac 创建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364629/