Внедрить свойство контроллера ASP.NET MVC в зависимость уровня службы?

Я использую подход, аналогичный тому, который описан в этом учебнике ASP.NET MVC , где вы передаете оболочку вокруг контроллера Коллекция ModelState в класс проверки, чтобы контроллер мог получить доступ к информации об ошибках.

Вот готовый пример:

interface IProductValidator {
   void Validate(Product item);
}

class ProductValidator {
   // constructor
   public ProductValidator(ModelStateWrapper validationDictionary) { }
}

interface IProductService {
   void AddProduct();
}

public class ProductService : IProductService {
   // constructor
   public ProductService(IProductValidator validator) { }
}

Используя контейнер Castle Windsor для IoC / DI, как мне создать IProductService ? Обычно у меня было бы:

MvcApplication.IocContainer.Resolve()

, но это не может ввести значение свойства контроллера ModelState в конструктор для ProductValidator. Я мог бы подключить это, используя параметры конструктора, но это кажется ужасным.

9
задан user403830 6 October 2010 в 14:26
поделиться