在多层应用程序(ASP MVC:UI项目,DAL项目)中,我在web.config中注册了组件。如何获得温莎城堡的服务实例
现在我有这个问题:工作单元模式已经实现,我需要获取特定服务的当前实例。服务的注册发生在UI项目中,但我需要在DAL项目中获取此服务的当前实例。我如何得到这个参考?
在UI项目我已经需要一种方式来得到的东西解决:
container = new WindsorContainer(
new XmlInterpreter(new ConfigResource("castle"))
);
personRepository= container.Resolve<IPersonRepository>();
难道即可使用的DAL项目相同的技术?如果是,我应该将配置写入单独的文件中,以便可以通过所有图层(项目)访问它?
对不起,这个(我认为)天真的问题,但这是我的第一个项目使用城堡,我想我不明白它的大图片!
代码片段会有很大的帮助。
在此先感谢!
我明白你的意思了! 但我不明白的是:这应该怎么做! DAL是它自己的一个组合。在它的一个类中,我简单地使用(IWindsorContainer容器)作为构造函数参数?如果是的话,我不需要注册容器本身(在UI项目中)?怎么样? 或者可以(应该)使用这样的东西: WindsorContainer container = new WindsorContainer(); container.Resolve(); 这意味着没有构造函数注入。 ...想我不明白如何做到这一点的技巧! –
2009-11-08 22:06:52
不,*避免*直接调用容器。不管它是否是另一个程序集,它仍然是同一个应用程序。使用此项目作为参考:http://code.google.com/p/blogsharp/ – 2009-11-09 01:37:53