Dot-Net

將自定義 ValueProviderFactories 添加到 ASP.NET MVC3?

  • August 1, 2011

我正在嘗試將 Protobuf ValueProviderFactory 添加到 MVC3,以便我可以挑選 MIME 類型並將原始數據反序列化為操作參數的對象。我也可以使用它來更改預設的 Json 序列化程序。

JsonValueProviderFactory.cs這個應該不會太難,但工廠似乎都是硬編碼的。

對於 Protobuf,我可能可以使用 IValueProvider 做一些事情,但我什至還沒有檢查 MVC3 在收到 MIME 類型時會做什麼application/x-protobuf

我會以正確的方式解決這個問題嗎?

更新

我發現這篇部落格文章談到了創建一個IValueProvider. 然後它在底部提到這在 MCV2 周圍發生了變化。他將其更改為 aValueProviderFactory並呼叫:

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

但是在 MVC3 中這個屬性是只讀的。

事實證明它不是只讀的,您可以按如下方式添加提供程序:

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

如果我檢查自己,我會知道這一點!

我今天做了更多的搜尋,這篇博文似乎暗示DependencyResolver將找到任何繼承ValueProviderFactory. 我正在使用 MEF 進行依賴解析,因此我只需添加一個 Export 屬性,它就會自動被拾取。

我現在有一個為 protobuf-net 編寫自定義 ValueProviderFactory 的問題。

引用自:https://stackoverflow.com/questions/6885538