【问题标题】:Best Practice - Share UnityContainer across Tiers in Asp.net MVC?最佳实践 - 在 Asp.net MVC 中跨层共享 UnityContainer?
【发布时间】:2009-06-23 21:54:33
【问题描述】:

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

我在另一个程序集中也有需要访问此容器的服务,以便它们可以手动执行解析。

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

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

【问题讨论】:

    标签: asp.net-mvc unity-container


    【解决方案1】:

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

    //配置容器

    废话 废话 废话

    //注册自己

    Container.RegisterInstance(Container);

    那么任何需要它的人都只是将它作为依赖属性或构造函数参数。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 正确,但没有配置。当我使用配置文件时,我有一个可行的解决方案,但是在被大型重构多次咬住之后,我选择退出 XML-Hell 并使用 C# 来连接容器。因此,在我共享配置的地方,我现在需要一种不同的方法。
      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多