次のように、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を取得します。