我爲OpenRasta創建了一個新的自定義JSON編解碼器,它工作正常。OpenRasta - 將參數傳遞給自定義編解碼器
當處理程序執行時,我需要將參數傳遞給編解碼器的寫入方法,但找不到有關如何執行該操作的任何文檔。
我在實施的writeTo方法注意到,有一個string[] codecParameters
參數,但是不知道如何將它們傳遞英寸
任何人來之前翻過這個問題?謝謝
我爲OpenRasta創建了一個新的自定義JSON編解碼器,它工作正常。OpenRasta - 將參數傳遞給自定義編解碼器
當處理程序執行時,我需要將參數傳遞給編解碼器的寫入方法,但找不到有關如何執行該操作的任何文檔。
我在實施的writeTo方法注意到,有一個string[] codecParameters
參數,但是不知道如何將它們傳遞英寸
任何人來之前翻過這個問題?謝謝
編解碼器參數是每個請求。它們旨在與(例如)PathSegmentAsParameterUriDecorator一起使用。例如,如果啓用該裝飾器,路徑/資源;片段將被作爲/資源通過openrasta處理,並且將使用「片段」值創建一個參數並傳遞給編解碼器。
如果您希望將信息從處理程序傳遞給編解碼器,那麼就沒有任何內容,因爲它在體系結構上違背了OpenRasta的設計,它專門防止處理程序和編解碼器彼此交談。
如果您希望將配置數據傳遞給您的編解碼器,請使用ICodec接口中的配置屬性,該配置屬性將填充您在配置時提供的任何對象。
您可以通過.TranscodedBy(對象配置)方法中的參數提供配置對象,或者如果您使用配置元模型進行自定義註冊,請將配置添加到CodecModel上的配置屬性(該配置屬性用於由流利的API創建的ResourceModel對象)。
您有具體情況可以幫忙嗎?
嗨serialseb。 感謝您的回答,非常有幫助。不幸的是,它不能解決我的問題,但也許你知道一個解決方法。 我的場景是: 我想回傳HTTP響應標頭中的一些信息。我無法訪問處理程序中的響應流,只能在編解碼器中訪問。 目前我不得不從處理程序返回一個DTO(包含頭字段的數據),然後在編解碼器中提取它並將其放入響應標頭中。 這有效,但如果有任何修改處理程序中的HTTP響應數據包的方法,我會感興趣。 謝謝! – joeweoj 2010-01-15 11:09:40
它取決於頭是什麼。如果它是一個實體頭,那麼可以從處理程序返回的DTO中扣除它,因爲DTO *是實體。也就是說,這取決於是否可以扣除所討論的實體頭或者它是否是一個不透明的值(在這種情況下,您可能會使響應不那麼透明)。這就是說,你有權訪問你的處理程序中的頭文件。不是你應該這樣做,而是在處理程序中依賴IResponse並使用Entity.Headers屬性。 – SerialSeb 2010-01-16 14:37:08