将对象序列化为XML并包含CDATA部分

时间:2012-08-09 20:22:28

标签: c# xml-serialization

  

可能重复:
  How to Include CData using LINQ to XML?

大约一个月前,我写了一篇关于在Web服务的CDATA标签中包装一些数据的帖子(这是他们的要求,而不是我的要求)。我做了一堆故障排除,并努力提供了一些结果。 (有关代码和结果,请参阅帖子Problems serializing a class to XML and including a CDATA section

现在我已经意识到,类设计至少可以说是糟糕的,并且已经重写了我之前编写的大部分代码。因此,我需要一些时间来回到以前的问题。

为了简洁起见,我决定提出一个新问题并保留旧问题。

我的(修订)问题

我是否可以使用XmlDocument创建直到CDATA部分的元素,然后使用CreateCDataSection()方法创建CDATA部分,如下所示?

<UpdateOrderStatus> 
    <Action>2</Action> 
        <Value> 
            <![CDATA[ 
                <Shipment> 
                    <Header> 
                        <SellerID>
                            ...
             ]]>
         </Value>
 </UpdateOrderStatus>

我能够将现有对象序列化为正确的XML片段,但是如果这段代码正确或者有更好的方法,我不是100%肯定:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.CreateDocumentFragment();
xmlDoc.CreateElement("Shipment");
xmlDoc.CreateElement("Action");
xmlDoc.CreateTextNode("2");
xmlDoc.CreateElement("Value");
xmlDoc.CreateCDataSection(orderToUpdate);

如果你正在编程,你会怎么做呢?我不一定需要代码,除非这个概念只能以这种方式显示。类名或MSDN引用等都没问题

0 个答案:

没有答案