代码设计建议

时间:2010-11-28 19:07:23

标签: c# extension-methods structuremap

我在我的项目中使用了一个结构图,而且我经常陷入一个扩展方法,我需要一个对象的实例。

第一种方法是将我的存储库发送到扩展方法,另一种方法是使用静态存储库并在我的方法中初始化它。

public static class SomeExtensions {
    static IRepository _repository;
    public static string ExtensionsMethod1(this HtmlHelper helper) {
        _repository = ObjectFactory.GetIntance<IRepository>();
        // do stuff
    }
}

在这种情况下最好做什么?

1 个答案:

答案 0 :(得分:3)

没有真正回答这个问题,只是这个特定的代码段:

您不应在ASP.NET MVC自定义html帮助程序方法中使用存储库。这是控制器操纵模型的责任。 Html帮助程序方法用于生成小型HTML代码段。

就更普遍的情况而言,扩展方法只是普通静态方法的语法糖,因此您不能将依赖项注入其中。