Советы по разработке кода - PullRequest
1 голос
/ 28 ноября 2010

Я использую структурную карту в своем проекте, и довольно часто я застреваю в методе расширения, где мне нужен экземпляр какого-либо объекта.

первый метод - отправка моего хранилища в метод расширения, а другой -метод состоит в том, чтобы иметь статический репозиторий и инициализировать его внутри моего метода следующим образом.

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

что лучше всего делать в этом сценарии?

1 Ответ

3 голосов
/ 28 ноября 2010

На самом деле не отвечает на вопрос, только этот фрагмент кода:

Вы не должны использовать репозиторий в своих пользовательских вспомогательных html-методах ASP.NET MVC. Это ответственность контроллера за манипулирование моделью. Html вспомогательные методы предназначены для генерации небольших фрагментов HTML.

Что касается более общего случая, то методы расширения являются просто синтаксическим сахаром для простых статических методов, поэтому вы не можете вводить в них зависимости.

...