Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用XML字符串序列化XML_C#_.net_Xml_Serialization_Xml Serialization - Fatal编程技术网

C# 用XML字符串序列化XML

C# 用XML字符串序列化XML,c#,.net,xml,serialization,xml-serialization,C#,.net,Xml,Serialization,Xml Serialization,我必须生成以下XML <object> <stuff> <body> <random>This could be any rondom piece of unknown xml</random> </body> </stuff> </object> 这可能是任何未知xml的rondom片段 我已将其映射到一个类,其主体属性为

我必须生成以下XML

<object>
    <stuff>
        <body>
            <random>This could be any rondom piece of unknown xml</random>
        </body>
    </stuff>
</object>

这可能是任何未知xml的rondom片段
我已将其映射到一个类,其主体属性为string类型

如果我将body设置为字符串值:“
这可能是任何未知xml的rondom片段

字符串在序列化过程中进行编码。我怎么能不对字符串进行编码,使其成为原始XML


我还希望能够对此进行反序列化。

XmlSerializer
将不信任您从
字符串生成有效的xml。如果希望成员是即席xml,它必须类似于
xmlement
。例如:

[XmlElement("body")]
public XmlElement Body {get;set;}
使用
Body
名为
random
XmlElement
InnerText
“这可能是任何未知xml的rondom片段”
都可以工作


[XmlRoot(“对象”)]
公共舱外
{
[XmlElement(“stuff”)]
公共内部{get;set;}
}
公共阶级内部
{
[XmlElement(“主体”)]
公共XmlElement主体{get;set;}
}
静态类程序
{
静态void Main()
{
var doc=新的XmlDocument();
doc.LoadXml(
“这可能是任何未知xml的rondom片段”);
var obj=新的外部{Inner=新的内部{Body=doc.DocumentElement};
新的XmlSerializer(obj.GetType()).Serialize(Console.Out,obj);
}
}

什么语言?什么平台?Opps,justed添加了.NET和C#tagsThanks,您似乎对xml序列化非常熟悉,您可能会回答:很酷的解决方案,甚至反序列化都有效-但是如果随机xml像
-----------
?那么它就无法加载到XmlDocument中。这就是我需要做的——反序列化。
[XmlRoot("object")]
public class Outer
{
    [XmlElement("stuff")]
    public Inner Inner { get; set; }
}
public class Inner
{
    [XmlElement("body")]
    public XmlElement Body { get; set; }
}

static class Program
{
    static void Main()
    {
        var doc = new XmlDocument();
        doc.LoadXml(
           "<random>This could be any rondom piece of unknown xml</random>");
        var obj = new Outer {Inner = new Inner { Body = doc.DocumentElement }};

        new XmlSerializer(obj.GetType()).Serialize(Console.Out, obj);
    }
}