【问题标题】:ASP.NET with Unity 2.0带有 Unity 2.0 的 ASP.NET
【发布时间】:2011-03-03 21:01:13
【问题描述】:

谁能帮我指出一些在不涉及 ASP.NET MVC 的 ASP.NET 中使用 Unity 2.0 的好资源?!?

我们没有使用 MVC,我正在努力让 Unity 在我阅读的几个示例之后将依赖项注入到我的页面中(这些示例都基于 David Hayden 的工作,因此它们都提供了相同的示例和代码) .

更新

我尝试使用 PageHandlerFactory 路线,但示例 (here) 不完整,并且本文没有可用的源代码。

所以,我决定尝试使用herehere 描述的自定义 HttpModule 方法。同样,除了显示的内容之外没有可用的源代码,因此很难解决问题。

我现在遇到的问题是所有管道似乎都正确连接,但 Buildup 方法对我的页面没有任何作用。当我在模块代码中设置断点并且代码按预期执行时,我可以看到所有类型都注册在容器中。但是 Page_Load 事件处理程序中的断点显示依赖项全部为空。

有问题的属性是公共的,具有 setter 和 getter,并标有 Dependency 属性。我尝试了使用和不使用属性,使用和不使用映射名称,......我能想到的每一种组合,但没有任何效果。

我错过了什么???

【问题讨论】:

    标签: asp.net unity-container webforms


    【解决方案1】:

    这取决于您的期望。大多数针对 MVC 的示例都存在自定义控制器工厂,它允许使用依赖注入创建控制器。对于 Web 表单,这确实也是可能的,但您必须将依赖项注入页面而不是控制器。为此,您必须将 PageHandlerFactory 替换为自定义实现。

    您可以创建自己的PageHandlerFactory 实现,它将能够直接解析页面并注入构造函数中定义的依赖项,或者您可以使用其中之一(hereherehere)来代替使​​用标准PageHandlerFactory 并构建页面实例(解决属性依赖关系)。

    【讨论】:

    • 我终于注意到第一个示例底部的链接,并将实现与我的进行了比较。一旦我修复了一个小类型-o - 我使用 BuildUp(object) 而不是 BuildUp(Type, object) - 我在做生意。 PageHandlerFactory 路线似乎很完美。它很干净,可以通过所需的配置插入。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2010-10-08
    • 2018-10-05
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多