Контроллер ModelState с ModelStateWrappper - PullRequest
3 голосов
/ 16 апреля 2009

Привет, всем, я использую Карту структуры для реализации внедрения зависимостей. Я создал класс ModelStateWrapper для отправки состояния модели в сервисном слое, который в конструкторе получает ссылку на ModelState контроллера. В bootswrapper я зарегистрировал свой тип:

ForRequestedType<ISourceService>()
            .TheDefaultIsConcreteType<SourceService>();
ForRequestedType<IValidationDictionary>()
        .TheDefaultIsConcreteType<ModelStateWrapper>();

Как я могу дать ссылку на состояние модели контроллера ModelStateWrapper здесь?

p.s. извините за мой английский:)

1 Ответ

2 голосов
/ 16 апреля 2009

Вы должны предоставить больше информации, но это мое лучшее предположение относительно того, что у вас есть:

public class ModelStateWrapper : IValidationDictionary
{
    ...
     private readonly ModelState _modelState;
     public ModelStateWrapper(ModelState modelState)
     {
          _modelState = modelState;
     }
    ...
}

Если вы хотите передать переменную (в данном случае состояние модели контроллера) в ModelStateWrapper, вам почти наверняка нужно сделать это явно, вызвав ObjectFactory.

Пример:

MyController : Controller 
{
   ...
   public MyAction()
   {
      ...
      IValidationDictionary validationDictionary = ObjectFactory
          .With<ModelState>(this.ModelState)
          .GetInstance<IValidationDictionary>();
      ...
   }
   ...
}

Подробности см. В этой документации:

Передача аргументов в StructureMap во время выполнения

...