将自定义 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 表单字段

如何将自定义标记导出回 AutoCAD

如何将自定义挂钩添加到 Woocommerce 的自定义插件

如何将自定义类型保存到 QSettings?

打字稿将自定义对象分配给任何对象

将自定义视图绑定到点