1

我有一个对象,它有一个字符串属性,其中有一个带有双引号的值。我需要序列化这个对象,然后使用那个 XML。我不会反序列化这个 xml。

我无法在 XML 文件中获取正确的内容。让我用一个代码示例来解释:

[Serializable]
public class Test {
    [XmlElement]
    public string obj { get; set; }
}
class Program {
    static void Main(string[] args) {

        var st ="Priority == \"1\"";
        Test test = new Test();          
        test.obj = st;
        //Serialize this object
        XmlSerializer xsSubmit = new XmlSerializer(typeof(Test));
        StringWriter sww = new StringWriter();
        XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings {
            OmitXmlDeclaration = true
        });
        var ns = new XmlSerializerNamespaces();//just to make things simpler here
        ns.Add(string.Empty, string.Empty);
        xsSubmit.Serialize(writer, test, ns);
        //My XML
        var xml = sww.ToString();
    }
}

我需要我的 xml 是:

<Test><obj>Priority==&quot;1&quot;</obj></Test>

我现在得到:

<Test><obj>Priority==\"1\"</obj></Test>

我什至尝试将字符串编码为 HTML,var html = HttpUtility.HtmlEncode(st); 在这种情况下,变量html格式正确,但是在序列化时我得到:

<Test><obj>Priority==&amp;quot;1&amp;quot;</obj></Test>

需要一些帮助。

4

1 回答 1

0

代码没有问题。

我真的明白<Test><obj>Priority=="1"</obj></Test>了,这很好。我犯的错误是我在调试器上读取值。当我在某处写它时,内容的格式正确。

"没有被转换为,因为&quot;双引号在 XML 文档中被接受。在这种情况下,我可以使用它!

于 2013-10-31T05:00:31.570 回答