.net Xml序列化/反序列化和html字符编码

.net Xml序列化/反序列化和html字符编码,.net,serialization,xmlserializer,.net,Serialization,Xmlserializer,我正在使用.NET XmlSerializer将xml序列化为对象,反之亦然。xml包含编码的特殊字符,例如大于和/或小于符号。当xml序列化为对象时,我需要将那些大于/小于的符号实际转换为“”,当从对象转换为xml时,我需要将实际的“”转换为其编码版本 我在UI中做了一些变通/破解来进行转换,但我正在寻找更好的方法来处理这个问题。我希望在实际的序列化程序中会有一些参数设置,在我序列化/反序列化时可以这样做。我环顾四周,与传递给序列化程序的各种编剧/蒸汽一起玩,但找不到任何东西 有人知道这方面的

我正在使用.NET XmlSerializer将xml序列化为对象,反之亦然。xml包含编码的特殊字符,例如大于和/或小于符号。当xml序列化为对象时,我需要将那些大于/小于的符号实际转换为“”,当从对象转换为xml时,我需要将实际的“”转换为其编码版本

我在UI中做了一些变通/破解来进行转换,但我正在寻找更好的方法来处理这个问题。我希望在实际的序列化程序中会有一些参数设置,在我序列化/反序列化时可以这样做。我环顾四周,与传递给序列化程序的各种编剧/蒸汽一起玩,但找不到任何东西


有人知道这方面的最佳解决方案是什么吗?

XmlSerializer
在默认情况下应该完全做到这一点。如果不是,你能发布一些细节吗

将对象序列化为XML时,字符串值(如
)会自动转义-转换为
),因为这些字符用于标记中,因此它们不会出现在元素中

当您将XML反序列化回对象时,它会执行相反的操作,即返回
。看看这个控制台应用程序和输出:

class Program
{
    static void Main(string[] args)
    {
        var myClass = new MyClass {Value = "<div>I am HTML!</div>"};
        var serializer = new XmlSerializer(typeof (MyClass));
        var xmlString = new StringBuilder();
        using (var writer = new StringWriter(xmlString))
        {
            serializer.Serialize(writer, myClass);
        }
        Console.WriteLine("Serialized:");
        Console.WriteLine(xmlString.ToString());
        Console.WriteLine();
        using (var reader = new StringReader(xmlString.ToString()))
        {
            var deserializedClass = serializer.Deserialize(reader) as MyClass;
            Console.WriteLine("Deserialized myClass.Value: " + deserializedClass.Value);
        }
        Console.ReadLine();
    }
}
类程序
{
静态void Main(字符串[]参数)
{
var myClass=newmyclass{Value=“我是HTML!”};
var serializer=新的XmlSerializer(typeof(MyClass));
var xmlString=新的StringBuilder();
使用(var writer=newstringwriter(xmlString))
{
serializer.Serialize(writer,myClass);
}
Console.WriteLine(“序列化:”);
Console.WriteLine(xmlString.ToString());
Console.WriteLine();
使用(var reader=newstringreader(xmlString.ToString()))
{
var deserializedClass=序列化程序。将(读取器)反序列化为MyClass;
WriteLine(“反序列化的myClass.Value:+deserializedClass.Value”);
}
Console.ReadLine();
}
}
序列化:

我是HTML/div

反序列化myClass。值:我是HTML