0
我有我自己的服務參考,我打電話給一個名爲列表<>。此列表將轉換非常有用的屬性。我怎樣才能通過這個列表回來瞭解它?如何將列表轉換爲複雜的參數數組
我正在從客戶端獲取數據,但我不知道如何初始化它以便以期望的方式發送到其他Web服務。
由.NET產生的可怕命名參數:
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("p2PARM", Order=4)]
public P2PARM[] p2PARM {
get {
return this.p2PARMField;
}
set {
this.p2PARMField = value;
this.RaisePropertyChanged("p2PARM");
}
}
其性質由.NET生成以及:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://update_data/xsd")]
public partial class P2PARM : object, System.ComponentModel.INotifyPropertyChanged {
private string p2A0STField;
private string p2A5TXField;
private decimal p2G9NCField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string p2A0ST {
get {
return this.p2A0STField;
}
set {
this.p2A0STField = value;
this.RaisePropertyChanged("p2A0ST");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public string p2A5TX {
get {
return this.p2A5TXField;
}
set {
this.p2A5TXField = value;
this.RaisePropertyChanged("p2A5TX");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public decimal p2G9NC {
get {
return this.p2G9NCField;
}
set {
this.p2G9NCField = value;
this.RaisePropertyChanged("p2G9NC");
}
}
我可以成功地提取數據分解成數據列表:
List<Models.UpdateData.InputData.Data> dataList = input.DataList;
SVC_UpdateData.P2PARM[] p2Input = new SVC_UpdateData.P2PARM[dataList.Count];
這是我試圖設置變量的地方,但是p2Input爲空,我無法Ë了下一步去哪裏..
for (int i=0; i < dataList.Count; i++)
{
p2Input[i].p2A0ST = dataList[i].NamedField1;
p2Input[i].p2A5TX = dataList[i].NamedField2;
p2Input[i].p2G9NC = dataList[i].NamedField3;
}
這裏是WSDL的,我發送到XML:
<xs:complexType name="P2PARM">
<xs:sequence>
<xs:element name="p2A0ST" type="xs:string" />
<xs:element name="p2A5TX" type="xs:string" />
<xs:element name="p2G9NC" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
這裏是我的模型包含我的列表:
[DataContract]
public class InputData
{
[DataContract]
public class Data
{
[DataMember]
public string NamedField1 { get; set; }
[DataMember]
public string NamedField2 { get; set; }
[DataMember]
public decimal NamedField3 { get; set; }
}
[DataMember]
public List<Data> DataList { get; set; }
}
我會將此標記爲答案,因爲您確實正確回答了問題。然而,我的方式超過了這個想法。我將我的代碼更改爲List,然後像正常一樣填充它,然後當我設置它時,我將它設置爲p2Input.ToArray(),它的工作原理非常漂亮。感謝您的幫助。 –
2015-03-30 21:24:57
當然,你也可以這樣做。我會爭辯說一個數組在理論上更高效,但在這種情況下可能並不重要。 – 2015-03-30 21:39:01