像这样由 WCF/svcutil.exe 自动生成类代码:
public class Foo
{
private float barField;
bool barFieldSpecified;
public float bar
{
get
{
return this.barField;
}
set
{
this.barField = value;
}
}
[System.Xml.Serialization.SoapIgnore]
public bool barSpecified
{
get
{
return this.barFieldSpecified;
}
set
{
this.barFieldSpecified = value;
}
}
}
并像这样使用 XMLSerializer:
Foo foo = new Foo();
foo.bar = 100;
var ser = new XmlSerializer(typeof(Foo));
var ms = new MemoryStream();
ser.Serialize(ms, foo);
var str = Encoding.UTF8.GetString(ms.ToArray());
我得到所有节点中的值都设置为“false”的 XML,并且我没有设置任何类属性。