Dot-Net
將自定義 ValueProviderFactories 添加到 ASP.NET MVC3?
我正在嘗試將 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 的問題。