我已經對一個WCF服務進行了原型化,該服務有一個接收對象數組作爲單個參數的操作。麻煩的是,每個對象都從一個基類(稱爲Message)繼承而來,它們的順序並不知道在前面。起初,WCF接收的(不正確)是一個Message元素數組,而不是從Message派生的正確類型。從Delphi客戶端使用WCF(數組和繼承)
經過一番努力,我可以從Delphi 6.02中調用這個服務。我使用WSDL導入器來創建基本客戶端並手動編輯源代碼,以糾正與Delphi SOAP解釋不兼容的問題。基本上,我做一些調整在OnBeforeExecute事件,像這樣:
SOAPRequest := StringReplace(SOAPRequest, '<item ', '<Message ', [rfReplaceAll]);
上面的代碼校正的Delphi傳遞數組元素的方式。我在這裏學到了Array_Of_Int in SOAP client。
然後,每個對象編碼爲一個消息,但一個屬性點,其運行時類型:
<Message xsi:type="Authenticate"> <!-- I need to get this, exactly, types can vary -->
的問題是,在這裏我們去,我還有其他種類的陣列。然後,可以用附件或地址來替換「項目」的發生。如果我將該類標記爲ioDocument,那麼我將基類作爲標記名,但通過屬性丟失了正確的類型。
任何想法來處理它?也許我可以使用其他SOAP庫?或者.NET能夠理解「項目」編碼?
謝謝。
的http:// stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/#answer-1732454 –