我已經實現了一個WCF路由服務;我還希望服務(或類似的WCF服務)以規定的和統一的(內容不可知的)方式來轉換有效負載。例如,有效載荷將始終採用Foo<T>
的形式,我想在所有情況下都將其作爲Bar<T>
傳遞。我很高興XSLT或程序化的轉變。我不在乎接收到的消息的類型不是Foo<T>
。帶內容轉換的WCF路由
我希望使用WCF,因爲它提供了很多OOTB功能(例如,它支持多種綁定)。這是不切合實際的落實與衆多樣板方法WCF服務以使每個關閉通用(Foo<Class1>
- > Bar<Class1>
; Foo<Class2>
- > Bar<Class2>
;等等),因爲這將每一次新的消息類型是被路由需要重新編譯/重新部署。
據我所知,WCF不處理開放泛型,而WCF路由不便於內容轉換OOTB。也就是說,System.ServiceModel.Routing.RoutingService
顯然會以某種非特定形式攔截WCF調用,所以我希望能夠利用相同的模式來實現我的目標。任何人都可以提供方向如何做到這一點(或指出爲什麼不可能)?
這可能是可能在低級別的消息處理實現任何一種基於XML轉換,但我想你不會找到根據各地的一個核心思想是,由於兩個原因,一個普遍支持:MS已經有工具爲路由和轉換做準備:用於簡單場景的工作流服務和用於實際應用集成的BizTalk Server。 –
這似乎可以使用IDispatchMessageInspector。 – Mark
你有沒有找到解決這個問題的方法?謝謝 –