.net AutoFac和MVC IControllerActivator需要容器
我的处境很有趣;我需要将IContainer传递给我正在定义的IControllerActivator组件,但IControllerActivator需要在容器内部注册。这是因为IControllerActivator将使用容器来构建控制器 我将容器作为静态引用存储在global.asax文件中;这样,容器上的任何从属对象(如my activator)都可以引用它。由于activator使用容器,并且需要在autofac模块中注册,因此是否有方法定义此特定映射需要对容器的引用,或者我可以在构建容器后注册此映射 我的选择是什么.net AutoFac和MVC IControllerActivator需要容器,.net,asp.net,asp.net-mvc,autofac,asp.net-mvc-3,.net,Asp.net,Asp.net Mvc,Autofac,Asp.net Mvc 3,我的处境很有趣;我需要将IContainer传递给我正在定义的IControllerActivator组件,但IControllerActivator需要在容器内部注册。这是因为IControllerActivator将使用容器来构建控制器 我将容器作为静态引用存储在global.asax文件中;这样,容器上的任何从属对象(如my activator)都可以引用它。由于activator使用容器,并且需要在autofac模块中注册,因此是否有方法定义此特定映射需要对容器的引用,或者我可以在构建容
谢谢。您可以依赖于
IComponentContext
:
public Foo(IComponentContext context, ...)
Autofac容器自动在该类型下注册,使其可用于所有组件。上下文实例将是解析Foo
的容器,无论是应用程序级还是请求级容器。这样就不需要知道所引用容器的范围
或者,您可以查看其中任何一项是否满足您的需要。使用这些类型时,很少需要直接引用
IComponentContext
。这使您的类不必直接了解Autofac。您可以依赖于IComponentContext
:
public Foo(IComponentContext context, ...)
Autofac容器自动在该类型下注册,使其可用于所有组件。上下文实例将是解析Foo
的容器,无论是应用程序级还是请求级容器。这样就不需要知道所引用容器的范围
或者,您可以查看其中任何一项是否满足您的需要。使用这些类型时,很少需要直接引用IComponentContext
。这使您的类不必直接了解Autofac