字符串字段值为空格时XMLSerializer中的问题

时间:2011-01-29 12:22:14

标签: c# xmlserializer

使用 XMLSerializer 保存从像myClass这样的类创建的对象

Public Class MyClass
{
  Public String test = " " ;
}

将导致:

<MyClass>
  <test> </test>
</MyClass>

但是当我想加载xml文件时,看起来它正在删除我需要的空白区域。 我怎么解决这个问题 ? 感谢

2 个答案:

答案 0 :(得分:2)

无法复制 - 看起来很好:

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class MyClass
{
    [XmlElement("test")]
    public string Test { get; set; }
}
static class Program
{
    static void Main()
    {
        XmlSerializer ser = new XmlSerializer(typeof(MyClass));
        MyClass orig = new MyClass { Test = " " }, clone;
        using (var file = XmlWriter.Create("my.xml"))
        {
            ser.Serialize(file, orig);
        }
        using (var file = XmlReader.Create("my.xml"))
        {
            clone = (MyClass)ser.Deserialize(file);
        }
        Console.WriteLine("'" + clone.Test + "'");
        Console.WriteLine(File.ReadAllText("my.xml"));
    }
}

输出:

' '

<?xml version="1.0" encoding="utf-8"?><MyClass xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><test> </test>
</MyClass>

可能有助于更具体地了解您如何查看它,以便“看起来它正在移除空白区域”。

答案 1 :(得分:0)

我在阅读XML文件时遇到了类似的问题。我还没有使用XMLSerializer,但是在XML文件中读取XMLDocument时设置XMLDocument.PreserveWhitespace = true。