我正在嘗試從URL中讀取WSDL以動態生成WCF服務的代理。 這是我的代碼:如何從C#中的URL讀取WCF服務的WSDL
XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(description))
if (ServiceDescription.CanRead(xmlTextReader))
{
...
}
我從法ServiceDescription.CanRead
得到一個XmlException
。
錯誤消息是「根層數據無效,第1行,第1位」。
瀏覽IE中的WDSL URL,我可以在標籤<wsdl:definitions ...> ... </wsdl:definitions>
之前看到下面的標籤,它不會出現在瀏覽器中。
<?xml version="1.0" encoding="UTF-8"?>
莫非是這個問題?但我想ServiceDescription.CanRead
應該能夠認識到這一點。任何提示將不勝感激。
如何檢查正在讀取的XML? 'CanRead'只是在XmlSerializer的內部實例上調用'CanDeserialize'並返回該值。 –
你在IE中看到的xml聲明是可選的,但是有效的。 [http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require-an-xml-declaration](http://stackoverflow.com/questions/7007427/does-a-valid- xml-file-require-an-xml-declaration) –
這可能是一個額外的隱藏字符,它會阻止XML的解析。 [http://stackoverflow.com/questions/17947238/why-data-at-the-root-level-is-invalid-line-1-position-1-for-xml-document/24513288](http:// stackoverflow.com/questions/17947238/why-data-at-the-root-level-is-invalid-line-1-position-1-for-xml-document/24513288) –