Я использую подход, аналогичный тому, который описан в этом учебнике 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. Я мог бы подключить это, используя параметры конструктора, но это кажется ужасным.