将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?
Posted
技术标签:
【中文标题】将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?【英文标题】:Adding custom ValueProviderFactories to ASP.NET MVC3? 【发布时间】:2011-07-30 19:32:00 【问题描述】:我希望尝试将 Protobuf ValueProviderFactory 添加到 MVC3,以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象。我也可以使用它来更改默认的 Json 序列化程序。
查看JsonValueProviderFactory.cs
这应该不会太难,但是工厂似乎都是硬编码的。
对于 Protobuf,我也许可以用 IValueProvider 做一些事情,但我什至还没有检查 MVC3 在收到application/x-protobuf
的 MIME 类型时会做什么。
我这样做对吗?
更新
我发现 this 博客文章谈到了创建 IValueProvider
。然后它在底部提到这在 MCV2 周围发生了变化。他将其更改为ValueProviderFactory
并致电:
ValueProviderFactories.Factories.Add(new HttpCookieValueProviderFactory());
但是在 MVC3 中这个属性是只读的。
【问题讨论】:
有趣。我不知道 MVC 在这里做了什么,所以我会好奇地关注这个问题。 【参考方案1】:原来它不是只读的,可以按如下方式添加提供者:
ValueProviderFactories.Factories.Add(new MyValueProviderFactory());
如果我自己检查一下,我会知道的!
我今天进行了更多搜索,this 博客文章似乎暗示DependencyResolver
将找到任何继承ValueProviderFactory
的类。我正在使用 MEF 进行依赖解析,因此我只需添加一个 Export 属性,它就会自动被拾取。
我现在有一个 further issue 为 protobuf-net 编写自定义 ValueProviderFactory。
【讨论】:
如果您想做一些事情,比如将默认的 json 值提供者替换为自定义值提供者,您也可以删除值提供者。以上是关于将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?的主要内容,如果未能解决你的问题,请参考以下文章
将自定义道具传递给 TypeScript 中的 Redux 表单字段