【问题标题】:Adding custom ValueProviderFactories to ASP.NET MVC3?将自定义 ValueProviderFactories 添加到 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 在这里做了什么,所以我会好奇地关注这个问题。

标签: .net asp.net-mvc asp.net-mvc-3 protobuf-net


【解决方案1】:

原来它不是只读的,可以按如下方式添加提供者:

ValueProviderFactories.Factories.Add(new MyValueProviderFactory());

如果我自己检查一下,我会知道的!

我今天进行了更多搜索,this 博客文章似乎暗示DependencyResolver 将找到任何继承ValueProviderFactory 的类。我正在使用 MEF 进行依赖解析,因此我只需添加一个 Export 属性,它就会自动被拾取。

我现在有一个 further issue 为 protobuf-net 编写自定义 ValueProviderFactory。

【讨论】:

  • 如果您想做一些事情,比如将默认的 json 值提供者替换为自定义值提供者,您也可以删除值提供者。
猜你喜欢
  • 2017-02-15
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多