我有一个 UnityContainer,它在运行时在 MVC Web 应用程序的 global.asax 文件中获取它的配置信息。
我在另一个程序集中也有需要访问此容器的服务,以便他们可以手动执行解决方案。
我怎样才能最好地分享这两个?我不想在我的数据程序集和 MVC 之间有引用,但我希望数据程序集能够访问由 Web 应用程序配置的 UnityContainer。
我想知道在这种情况下其他人在做什么。
我有一个 UnityContainer,它在运行时在 MVC Web 应用程序的 global.asax 文件中获取它的配置信息。
我在另一个程序集中也有需要访问此容器的服务,以便他们可以手动执行解决方案。
我怎样才能最好地分享这两个?我不想在我的数据程序集和 MVC 之间有引用,但我希望数据程序集能够访问由 Web 应用程序配置的 UnityContainer。
我想知道在这种情况下其他人在做什么。
我只是将容器注册到自身中,然后让依赖项在整个引用层级联。
IE
// 配置容器
等等等等等等
//注册自己
Container.RegisterInstance(Container);
然后任何需要它的人都将它作为依赖属性或构造函数参数。
我正在使用 StructureMap(类似工具)并且通常在解决方案中跨项目共享我的配置。这意味着它们本身并不直接共享相同的对象,除非它们在相同的上下文中工作。在一个简单的应用程序中,网站正在加载程序集以执行从控制器到业务层然后进入 dal 的工作......他们确实使用了相同的对象。但是,只要您需要将层放入物理上独立的层(硬件),那么配置就可以使用它。这成为当时的部署问题。