![](/img/trans.png)
[英]ASMX Service Error - Use the XmlInclude or SoapInclude attribute to specify types that are not known statically
[英]Issue calling a web service - Use the XmlInclude or SoapInclude attribute
我正在呼叫其他人的Web服務,他們提供了WSDL文件和一堆XSD文件。 我已經使用本地WSDL文件在項目中創建了Web參考,並使用xsd.exe創建了一個類。 我正在調用的網絡方法是
object MyService.MyMethod(object myObj)
因此,我創建了服務的新實例以及xsd創建的對象的新實例。 Web服務文檔告訴我myObj的類型為ObjectRQ(從xsd創建)。
我的代碼是這樣的:
MyService service = new MyService();
ObjectRQ request = new ObjectRQ();
// Set the values of request.
object result = service.MyMethod(request);
在該代碼的最后一行,我得到一個錯誤:
不需要ObjectRQ類型。 使用XmlInclude或SoapInclude屬性可以指定靜態未知的類型。
我不知道是什么原因導致此錯誤,並且我的搜索沒有任何幫助。 誰能幫我這個?
因為代理中的參數類型是對象,所以組成您的消息的XmlSerializer並不知道ObjectRQ類型。 從這個意義上講,這是出乎意料的。 因此,基本上您要做的就是讓XmlSerializer知道一種或另一種期望這種類型的信息。 一種方法是XmlInclude屬性。 另一種方法是將類型添加到代理類操作的已知類型。 在數據協定中,您可以使用KnownType屬性來執行此操作,但是由於您只能控制客戶端,因此必須自己在代碼中執行。 您可以在此處找到有關它的博客文章。
HTH。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.