Где установить ModelMetadataprovider с DI при использовании турбины MVC? - PullRequest
0 голосов
/ 28 июля 2010

Чтобы использовать свой собственный ModelMetadataProvider, вы обычно устанавливаете его в global.asax.

Я использую турбину MVC, и мне нужно также ввести зависимость в мой ModelMetadataProvider.

Примерно так:

ModelMetadataProviders.Current = new MyModelMetadataProvider(ISomeDependency);

Как лучше всего это сделать с турбиной MVC?

1 Ответ

0 голосов
/ 28 июля 2010

Лучшее место для размещения этих частей - переопределить метод Startup в вашем веб-приложении (тип, который наследуется от TurbineApplication). В настоящее время мы работаем над тем, чтобы упростить эти функции MVC2 в v2.2 путем введения ModelMetadataBlade, который выполнит всю проводку за вас в свойстве ModelMetadataProvider.Current.

Так что все, что вам нужно сделать, это зарегистрировать MyModelMetadataProvider в контейнере следующим образом:

container.Register<ModelMetadataProvider, MyModelMetadataProvider>()

тогда MVC Turbine сделает все остальное за вас. Чтобы понять, о чем я говорю, ознакомьтесь с тем, как мы подключаем ModelValidatorProviders . ModelValidatorBlade запрашивает ServiceLocator для всех зарегистрированных ModelValidatorProvider и связывает их со средой выполнения.

Если у вас есть какие-либо отзывы или идеи, не могли бы вы опубликовать их в Группе Google ? Стараясь держать все в порядке:)

Спасибо!

...