Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net AutoFac和MVC IControllerActivator需要容器_.net_Asp.net_Asp.net Mvc_Autofac_Asp.net Mvc 3 - Fatal编程技术网

.net AutoFac和MVC IControllerActivator需要容器

.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模块中注册,因此是否有方法定义此特定映射需要对容器的引用,或者我可以在构建容

我的处境很有趣;我需要将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