我在我的项目中使用了一个结构图,而且我经常陷入一个扩展方法,我需要一个对象的实例。
第一种方法是将我的存储库发送到扩展方法,另一种方法是使用静态存储库并在我的方法中初始化它。
public static class SomeExtensions {
static IRepository _repository;
public static string ExtensionsMethod1(this HtmlHelper helper) {
_repository = ObjectFactory.GetIntance<IRepository>();
// do stuff
}
}
在这种情况下最好做什么?
答案 0 :(得分:3)
没有真正回答这个问题,只是这个特定的代码段:
您不应在ASP.NET MVC自定义html帮助程序方法中使用存储库。这是控制器操纵模型的责任。 Html帮助程序方法用于生成小型HTML代码段。
就更普遍的情况而言,扩展方法只是普通静态方法的语法糖,因此您不能将依赖项注入其中。