c# - 当字符串字段值为空格时 XMLSerializer 中的问题

标签 c# xmlserializer

使用 XMLSerializer 保存从类创建的对象,如 myClass

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

将产生:

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

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

最佳答案

无法重现 - 看起来还不错:

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>

它可能有助于更具体地说明您尝试查看它的方式,这样它“看起来像是在删除空白区域”。

关于c# - 当字符串字段值为空格时 XMLSerializer 中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836826/

相关文章:

c# - 将方法移动到新文件并将其保留在同一个类中(使其部分化)

c# - 重新评估由标记扩展计算的 xaml 页面中的所有值

c# - 编写一个通用的 FluentValidation 自定义验证器来检查唯一约束

c# - XmlSerializer + 多态性

c# - C#XmlSerializer会忽略xs:string以外的类型的xs:attribute

c# - List<string> -> xml反序列化

c# - 在 RDLC 中使用多个数据集

c# - 检查 Double 是否为 "NaN"的最短方法

.net - 有没有办法在使用 XML 序列化时避免自关闭标签?

c# - Xml序列化获取列表节点上的属性