xmlrequest と xmlresponse の要素の代わりに XML 属性を使用したいので、次のように IXmlSerializable を実装しました。
public partial class Id : IXmlSerializable
{
/// <remarks/>
[XmlAttribute]
public string lmsId;
/// <remarks/>
[XmlAttribute]
public string unitId;
/// <remarks/>
[XmlAttribute]
public string lmsPresId;
/// <remarks/>
[XmlAttribute]
public string callId;
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(System.Xml.XmlReader reader)
{
//implement if remote callers are going to pass your object in
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteAttributeString("lmsId", lmsId.ToString());
writer.WriteAttributeString("unitId", unitId.ToString());
writer.WriteAttributeString("lmsPresId", lmsPresId.ToString());
writer.WriteAttributeString("callId", callId.ToString());
}
}
しかし、私のサービス ヘルプはリクエストとレスポンスを不明と表示しています
XmlSerializerFormat も試してみました
[System.ServiceModel.MessageContract]
public partial class Id
{
/// <remarks/>
[XmlAttribute, MessageBodyMember]
public string lmsId;
/// <remarks/>
[XmlAttribute, MessageBodyMember]
public string unitId;
/// <remarks/>
[XmlAttribute, MessageBodyMember]
public string lmsPresId;
/// <remarks/>
[XmlAttribute, MessageBodyMember]
public string callId;
}
次に、xml 内のすべてを XmlAttributes ではなく xmlElements として取得していますが、すべてのデータを Xmlattributes ではなく要素として取得しています。