1
我有一個.NET客戶端調用SOAP .asmx Web服務。我正在開發的客戶端本身是.NET 4下的WCF服務。目標.asmx Web服務是應用程序中的服務引用。我無法控制目的地。調用SOAP ASMX Web服務時在根元素中強制命名空間
問題是,在調用Web服務時,爲該調用創建的XML不包含要發送的代理類的序列化XML的根元素中的特定名稱空間。
相反,它爲嵌套在文檔中的少數元素應用名稱空間。
當使用代理類:
無法找到元素「甕架構信息:hl7-
var x = new RemoteService_PortTypeClient(); x.SomeMethod(somePayload);
目標服務時,在整個HL7命名空間格式化返回一個異常組織:V3:TYPEID」。
當前的序列化代理對象(somePayload
)來發送的:
<MyRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
....
<MyNode value="20120801100803" xmlns="urn:hl7-org:v3" />
我怎麼想它發送:
<MyRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:hl7-org:v3">
....
<MyNode value="20120801100803" />
我怎麼能強迫我的客戶在根中聲明名稱空間,而不是散佈在元素中?
我知道在根中使用這個命名空間將被服務接受而不會有錯誤,因爲它已經被證明以這種方式工作。
是否有References.cs
或web.config或其他強制這個聲明/屬性?
還有一類'XmlSerializerNamespaces'其串行器起飛。你可以在那裏添加。 – Ankush 2012-08-03 20:54:08
@Ankush我正在談論在Service Reference中創建的代理類。這裏沒有明確的序列化。 – 2012-08-03 21:15:37
是的,我明白這一點。但'svcutil.exe'或者其他生成代理類的東西通常需要一些控制檯參數,或許這就是答案。我只是引導你,我不知道答案。 – Ankush 2012-08-03 21:18:48