Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不考虑字符串属性的可序列化类_C#_Xml_Serialization - Fatal编程技术网

C# 不考虑字符串属性的可序列化类

C# 不考虑字符串属性的可序列化类,c#,xml,serialization,C#,Xml,Serialization,我已经用属性创建了一个可序列化的类 [XmlAttribute("ToleranceSign"), DefaultValue("1")] public string ToleranceSign { get; set; } 当我像下面这样序列化这个类时 using (StringWriter writer = new StringWriter()) { XmlSerializer serial = new XmlSerializer(serial

我已经用属性创建了一个可序列化的类

[XmlAttribute("ToleranceSign"), DefaultValue("1")]
    public string ToleranceSign { get; set; } 
当我像下面这样序列化这个类时

using (StringWriter writer = new StringWriter())
        {
            XmlSerializer serial = new XmlSerializer(serializeData.GetType());
            XmlSerializerNamespaces xns = new XmlSerializerNamespaces();
            xns.Add(string.Empty, string.Empty);
            serial.Serialize(writer, serializeData, xns);
            writer.Flush();
            string serialContent = writer.ToString();
            return serialContent;
        }

除公差符号外,所有其他属性都转换为XML节点。我在声明中有什么错误吗

如果
公差符号
的值为
null
,则该值将被忽略且不会序列化


如果
公差符号
的值为
“1”
,则
[DefaultValue(“1”)]
将导致其未序列化。基本上:如果希望在非
null

时始终序列化该属性,
DefaultValue
属性不会导致赋值,则不包括该属性。你需要通过代码来做这件事。看。也就是说,字符串属性至少应该初始化为
string.Empty
,以便序列化。

谢谢。我已经删除了DefaultValue属性,它工作得很好。因为我将“1”赋值给公差符号,所以它没有序列化。我一直认为DefaultValue的工作方式与DB中的默认值类似(即,如果未分配任何值,它将添加默认值)!!我正在给那个属性赋值“1”。