Мне нужно подключить мой пользовательский ModelBinder до контейнера DI в MVC 3, но я не могу заставить его работать.Пример реализации IModelBinderProvider для встраивания конструктора ModelBinder в MVC 3
So. Это то, что у меня есть: ModelBinder с инжектируемой конструктором.
public class ProductModelBinder : IModelBinder{
public ProductModelBinder(IProductService productService){/*sets field*/}
// the rest don't matter. It works.
}
Мой связующий работает отлично, если я добавляю это так:
ModelBinders.Binders.Add(typeof(Product),
new ProductModelBinder(IoC.Resolve<IProductService>()));
Но это старый способ сделать это, и я не хочу этого.
Что мне нужно, это помощь в том, как подключить этот модельный блок до зарегистрированного IDependencyResolver.
Согласно Брэду Уилсону, секрет использует реализацию IModelBinderProvider, но очень неясно, как это подключить. (in this post)
У кого-нибудь есть пример?
IModelBinderProvider будет вашей собственной реализацией. Просто так случилось, что я написал сообщение в блоге об этой вещи. Http://buildstarted.com/2010/12/02/modelbinderproviders-automatic-binding-your-models-is-easy-as-pie/ Надеюсь, это поможет – Buildstarted 2010-12-08 20:45:35
Да , это хорошо работает. Я просто заменяю материал CreateInstance() на var instance = (IModelBinder) DependencyResolver.Current.GetService (type); Спасибо! . – 2010-12-08 21:06:59