繁体   English   中英

使用包含双引号的字符串属性序列化对象

[英]Serializing an object with a string property containing double quotes

我有一个具有字符串属性的对象,该属性的值带有双引号。 我需要序列化该对象,然后使用该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>

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

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

请需要帮助。

代码没有问题。

我实际上得到了<Test><obj>Priority=="1"</obj></Test> ,这很好。 我犯的错误是我正在读取调试器上的值。 当我将其写入某处时,内容的格式正确。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM