IWindsorContainer作为类的参数

Ter*_*wis 7 .net castle-windsor inversion-of-control

我有一个类,我想访问我的IOC容器(Windsor),但我不想保持静态IWindsorContainer属性 - 我宁愿让容器注入任何需要IWindsorContainer的类中构造函数依赖项.

我已经用Unity取消了它,但是当我使用Windsor容器尝试相同的事情时,它告诉我IWindsorContainer没有在容器中注册.

我不认为我可以只注册IWindsorContainer => WindsorContainer,因为这将导致容器创建一个新的(或不同的)自身实例传递给我的类,并且该实例将不会注册所有其他类型它.我也没有看到构造容器的方法,注册其中的所有类型,然后针对IWindsorContainer注册自己的实例 - 所有注册方法只接受服务和实现的类型 - 从来不是实际的具体实例.

Mau*_*fer 8

通常,您不希望将容器注入应用程序组件.

看到这些问题(这个问题几乎与它们重复):

顺便说一下:你可以IKernel免费注射,你可以注册IWindsorContainer:

container.Register(Component.For<IWindsorContainer>().Instance(container));
Run Code Online (Sandbox Code Playgroud)