我正在使用Visual Studio 2010,並且我已獲得對我們創建的Web服務的服務引用。我們的方法返回包含泛型列表屬性的對象:服務參考使用數組而不是列表<Type>,即使設置說要使用列表
public class ExampleResponse
{
private System.Collections.Generic.List<int> intValues;
[WCF::MessageBodyMember(Name = "IntValues")]
public System.Collections.Generic.List<int> IntValues
{
get { return intValues; }
set { intValues= value; }
}
}
在客戶端,它創建爲int [],而不是列表中References.cs文件:
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="SomeNamespace", Order=0)]
[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays", IsNullable=false)]
public int[] IntValues;
在服務引用設置集合類型設置爲使用列表,而不是數組。但是,它仍在這樣做。
任何有關如何解決這個問題的信息將是非常有用的,它似乎沒有任何意義。
該引用是通過右鍵單擊該項目並選擇「添加服務引用...」創建的。當對話框出現以找到Web服務時,我不選擇底部的Web引用選項。我會檢查你的另一個建議,但直到最近它一直在運行 - 它來自我們「繼承」的Web服務。 – Grandpappy 2010-07-01 17:49:23
好吧,明白了。你的評論讓我失望了一條我從未想過的道路。我們有一個沒有DataContract屬性的枚舉,所以VS2010在沒有告訴我的情況下創建了一個WebReference。 我也明白你說的關於處理我們自己的消息合約,這很醜陋。 – Grandpappy 2010-07-01 18:03:51
很高興我能幫到你。快樂編碼 – CkH 2010-07-01 18:39:07