最佳实践 - 在Asp.net MVC中跨层级共享UnityContainer?

时间:2009-06-23 21:54:34

标签: asp.net-mvc unity-container

我有一个UnityContainer,可以在运行时在MVC Web应用程序的global.asax文件中获取它的配置信息。

我还有另一个需要访问此容器的程序集中的服务,以便他们可以手动执行分辨率。

我怎样才能最好地分享这两个?我不想在我的Data程序集和MVC之间有引用,但我希望数据程序集能够访问由Web应用程序配置的UnityContainer。

我想知道其他人在这种情况下做了什么。

2 个答案:

答案 0 :(得分:1)

我只是将容器注册到自身,然后让依赖关系在引用的层中级联。

//配置容器

嗒嗒 胡说 嗒嗒

//注册自己

Container.RegisterInstance(容器);

然后任何需要它的人都将它作为依赖属性或构造函数参数。

答案 1 :(得分:0)

我正在使用StructureMap(类似工具),并且通常在解决方案中跨项目共享我的配置。这意味着除非它们在相同的上下文中工作,否则它们不直接共享相同的对象。在一个简单的应用程序中,网站正在加载程序集以执行从控制器到业务层的工作,然后再进入dal ...它们确实使用相同的对象。但是,只要您需要将您的层放入物理上独立的层(硬件)中,配置就可以使用它。这成为当时的部署问题。