【发布时间】:2010-12-09 15:21:07
【问题描述】:
我需要将我的自定义 ModelBinder 连接到我在 MVC 3 中的 DI 容器,但我无法让它工作。
所以。这就是我所拥有的: 具有构造函数注入服务的 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 的帮助。
根据 Brad Wilson 的说法,秘诀是使用 IModelBinderProvider 实现,但不清楚如何将其连接起来。 (in this post)
有人有例子吗?
【问题讨论】:
-
IModelBinderProvider 将是您自己的实现。碰巧我写了一篇关于这件事的博客文章buildstarted.com/2010/12/02/…希望这有帮助
-
是的,效果很好。我只是将 CreateInstance() 东西替换为 var instance = (IModelBinder) DependencyResolver.Current.GetService(type);谢谢! .
-
我仍然认为应该可以使用泛型进行更干净的实现。我想我需要睡在那上面;)
标签: asp.net-mvc asp.net-mvc-3 modelbinders