我有一些生成的代理類,它們包含具有XMLAttribute屬性的屬性,例如,序列化對象中缺少的屬性和元素
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.egem.nl/StUF/StUF0301")]
public Verwerkingssoort verwerkingssoort
{
get
{
return this.verwerkingssoortField;
}
set
{
this.verwerkingssoortField = value;
}
}
但是,這和其他幾個屬性不會顯示在SOAP消息中。這些代理是使用svcutil生成的。
當我寫這個問題時,我注意到屬性是字符串,雖然這是一個枚舉(但我還沒有做徹底檢查)。有人知道這是否是問題,還有其他可能的解決方案以及可能的解決方案?
更新: 一些檢查後,我發現沒有枚舉包括作爲屬性,但字符串和BOOLS做工精細。
更新2: 在simple case Enum as屬性被序列化就好了。
更新3: 如果我更換XmlAttributeAttribute(...)
與XmlIgnoreAttribute()
並添加以下屬性:
[System.Xml.Serialization.XmlAttributeAttribute("verwerkingssoort")]
public string verwerkingssoortString
{
get
{
return this.verwerkingssoortField.ToString();
}
set
{
this.verwerkingssoortField = (Verwerkingssoort)System.Enum.Parse(typeof(Verwerkingssoort), value, true);
}
}
它工作正常,但在整個生成的代碼做這樣的改變將是一個相當艱鉅的任務,當合同發生變化時,我需要再做一遍。所以我仍然在尋找更好的解決方案。
更新4: 事實證明,這個問題不限於屬性。我只注意到,應該被序列化到一個元素的屬性也被省略。同樣的東西適用:它是一個枚舉,並且如果我將其更改爲字符串,它工作正常。
謝謝,問候,
Miel。
當我在引用的簡單情況下嘗試時,我得到一個excpetion(在荷蘭語:()中,Type爲XmlAttribute不能給出原始類型。 – Miel 2010-07-06 10:30:13