我正在使用Autofac在我的应用程序中处理依赖注入。然而,我有一个组件在运行时做了一些反射魔术,我不知道它在编译时需要什么依赖。使用Autofac作为服务定位器
通常情况下,我只想让这个组件直接引用Container并解决它想要的任何内容。但是,实例化此类的类没有对容器的引用。
实际上,我的组件依赖于Autofac。我宁愿松散耦合,但在这里似乎不是一种选择。有没有办法(在构造函数的参数,或使用属性注入,或任何!)Autofac给我在我的构造函数容器的引用?或者,有没有更好的方法让Autofac为我提供一个可以解决任何问题的魔术服务定位器对象?
虽然看到组件正在做什么“魔术”,但会很有趣。也许除了服务定位器模式之外,还有其他方法。你能用一些代码更新吗? –
我可以很好地描述它。随着消息通过总线进入,代码确定消息使用某些元数据的类型,然后构造所述类型。然后它需要使用Autofac查找所有'IConsume'的实现者(其中'type'是来自元数据的类型),然后调用它的Consume方法。 –
你的意思是:http://kozmic.pl/2010/03/11/advanced-castle-windsor-ndash-generic-typed-factories-auto-release-and-more/ –