簡體   English   中英

從對象序列化到XML節點

[英]Serializing from an object into an XML node

我有2個Web服務。 一個Web服務接受一個類型為A的對象。在Visual Studio中使用“添加服務引用”時,它將創建一個名為AType的類。

我第二個Web服務的輸入方法(稱為x(...))實際上接受類型A的參數,但由於某種原因,WSDL不正確,並將其聲明為## any。

<any namespace="##any" processContents="lax" minOccurs="1" maxOccurs="1">

這意味着在我的代碼中,我將必須從XmlDocument創建一個XmlElement:

private static XmlDocument doc = new XmlDocument();
XmlElement e = doc.CreateElement("some-name", "some-uri");

有沒有辦法將AType轉換為XmlElement? 我必須先回到字符串嗎?

作為替代方案,我正在考慮合並兩個Web服務WSDL文件...

我終於發現以下代碼完全符合我的要求:

    public static XmlElement Serialize(MyObject someClassInstance)
    {            
        XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
        XmlDocument doc = new XmlDocument();

        XPathNavigator nav = doc.CreateNavigator();
        XmlWriter writer = nav.AppendChild();
        serializer.Serialize(writer, someClassInstance);
        writer.WriteEndDocument();
        writer.Flush();
        writer.Close();
        return doc.DocumentElement;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM