C#序列化程序忽略了特定属性:值。这个类里面有两个属性。 valueSpecified 被序列化。 值没有。如果我在序列化期间设置了断点(>>>),则永远不会调用该行。如果我将属性名称更改为Value或valueX,则会发生序列化并调用断点。 我坚持使用该名称,因为该类是从我无法控制的模式生成的。这是序列化程序中的错误还是C#中的特殊字。我试着将它命名为@value,没有快乐。
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool value {
get {
>>> return this.valueField;
}
set {
this.valueField = value;
}
}
/// <remarks/>
//[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool valueSpecified {
get {
return this.valueFieldSpecified;
}
set {
this.valueFieldSpecified = value;
}
}
答案 0 :(得分:0)
使用'Value'作为属性名称,但将“value”传递给XmlAttributeAttribute的构造函数
答案 1 :(得分:0)
序列化程序首先查看valueSpecified
以查看是否已明确设置value
或是否将其视为默认值。
如果valueSpecified == true
,序列化程序将获得value
的值并将其序列化。
如果没有,序列化程序将假定该值是默认值,而不是显式序列化。
尝试将valueSpecified
设置为true。