我有一個RESTful service,我正在開發WCF。我正在公開一個沒有可序列化類型的合同,因此我使用DataContractSurrogate(IDataContractSurrogate
的實現)創建可以用DataContractSerializer
序列化的代理。是否可以從WCF IDataContractSurrogate實現中讀取請求標頭?
我的問題是,我如何訪問我的DataContractSurrogate類中的請求/響應頭?
在它通過簡單地使用WebOperationContext
和客戶機中的相同WebOperationContext
可能的服務是可以與當前的WCF信道(IContextChannel
)的參考被創建的對象OperationContextScope
的範圍內訪問。
我可以創建一個OperatoinContextScope
如果我能夠在IDataContractSurrogate.GetDeserializedObject
之內獲得對WCF通道的引用,但我不確定如何做到這一點。
任何想法?
@casperOne:
我想在DataContractSurrogate執行標頭值,因爲從代理轉換爲目標類型我需要引用在工廠對象的單身庫中的條目。
事情是這樣的:
SingletonFactoryPool.Factories[factoryIdFromHeader].CreateTargetType(surrogateValues);
我已經走過時,我需要在頭其他原因的數據,好像它是清潔,如果我可以只讀取頭中的價值。您的觀點是有效的,但我可以輕鬆地在代理人中傳遞相同的數據。
更新了這篇文章,進一步闡明瞭爲什麼我試圖訪問IDataContractSurrogate實現中的頭文件。答覆是要評論 – 2009-02-09 04:14:41