【发布时间】:2012-05-23 12:34:17
【问题描述】:
所以,我正在做基于 .NET MVC 3 的应用程序并使用 Castle Windsor 作为 IOC 容器。
我使用它没有任何问题并且工作得很好。现在我遇到了这种情况,我创建了一个公开方法的 HTML 助手
public static string GetContentByKey(string key)
{
//I need to use a service that is resolved by Windsor here
}
问题是在这个 Helper 类中我需要使用一个通过 Windsor 初始化的服务,但是由于这个 Helper 是一个静态方法,所以你没有构造函数注入的选项。
【问题讨论】:
-
这种问题表明您正在尝试使用错误的方法。也许您应该退后一步,重新考虑您要做什么。
-
我同意塞巴斯蒂安的观点。如果一个类需要依赖,它可能不仅仅是一个“帮助”类。就像您对其他服务一样进行设计。换句话说:不要让它成为静态的,而是定义一个单独的公共构造函数来获取它的所有依赖项。
标签: .net asp.net-mvc design-patterns dependency-injection castle-windsor