Я создаю многоуровневое приложение и стараюсь максимально сохранить слои, поэтому для этой цели я использую контейнер IoC.В любом случае, я пытаюсь расширить эту статью , чтобы перенести проверку бизнес-логики на уровень обслуживания.Мне удалось решить все проблемы с зависимостями, кроме зависимости класса ModelStateWrapper от самого ModelState.Вот мои классы:
public interface IValidationDictionary
{
void AddError(string key, string errorMessage);
bool IsValid { get; }
}
public class ModelStateWrapper : IValidationDictionary
{
private ModelStateDictionary _modelState;
public ModelStateWrapper(ModelStateDictionary modelState)
{
_modelState = modelState;
}
public void AddError(string key, string errorMessage)
{
_modelState.AddModelError(key, errorMessage);
}
public bool IsValid
{
get { return _modelState.IsValid; }
}
}
Класс ModelStateWrapper находится в папке Services в моем приложении MVC3.Пока IValidationDictionary находится внутри папки Abstract внутри моего слоя Services.В моей конфигурации Unity я сделал следующее:
.RegisterType<IValidationDictionary, ModelStateWrapper>(
new HttpContextLifetimeManager<IValidationDictionary>())
Итак, есть ли что-нибудь, что я мог сделать, чтобы добавить объект ModelState в класс ModelStateWrapper с помощью IoC?Или я должен явно / вручную создать экземпляр ModelStateWrapper в контроллерах и передать в качестве аргумента ModelState?
Заранее спасибо!