可能重複:
VS2003 Web Reference for a WCF Service has Extra "IdSpecified" ParameterWeb服務中的對象不返回整數數據
謝謝大家。我完全錯過了。是的,班級名稱很糟糕。
我有一個Web服務(ASMX),它返回一個包含數組的對象。
我首先定義我的響應對象:
APIResponse response = new APIResponse();
填充一個DataTable:
dtHolder = SqlHelper.ExecuteDatatable(connstring, CommandType.StoredProcedure, strSelect, aParams);
創建我的查詢結果的持有人:
API036RsBkgDetRec[] BkgDetRec_Array = new API036RsBkgDetRec[dtHolder.Rows.Count];
int i = 0;
foreach (DataRow row in dtHolder.Rows)
{
BkgDetRec_Array[i] = new API036RsBkgDetRec();
BkgDetRec_Array[i].eqoEqszId = row[0].ToString();
BkgDetRec_Array[i].eqoEqtpId = row[1].ToString();
BkgDetRec_Array[i].eqoEqhtId = row[2].ToString();
BkgDetRec_Array[i].qty = Convert.ToInt32(row[3]);
BkgDetRec_Array[i].receiveQty = Convert.ToInt32(row[4]);
BkgDetRec_Array[i].emptyTally = Convert.ToInt32(row[5]);
BkgDetRec_Array[i].maxEmpty = Convert.ToInt32(row[6]);
BkgDetRec_Array[i].chsQty = Convert.ToInt32(row[7]);
BkgDetRec_Array[i].chsTally = Convert.ToInt32(row[8]);
i++;
}
和填充陣列我返回(bkgDetTable)與上面剛剛填充的持有者陣列:
response.bkgDetTable = BkgDetRec_Array;
當我捕獲輸出時,我看到沒有任何整數字段正在創建,即使當我單步執行代碼時,它們也會填充實數。對象API036RsBkgDetRec也將它們定義爲整數值。只有定義爲字符串的字符串纔會出現。
<bkgDetTable xmlns="http://sdfsd/xsd">
<eqoEqhtId>96</eqoEqhtId>
<eqoEqszId>40</eqoEqszId>
<eqoEqtpId>DR</eqoEqtpId>
</bkgDetTable>
這裏是API036RsBkgDetRec的定義:
public partial class API036RsBkgDetRec
{
private int chsQtyField;
private bool chsQtyFieldSpecified;
private int chsTallyField;
private bool chsTallyFieldSpecified;
private int emptyTallyField;
private bool emptyTallyFieldSpecified;
private string eqoEqhtIdField;
private string eqoEqszIdField;
private string eqoEqtpIdField;
private int maxEmptyField;
private bool maxEmptyFieldSpecified;
private int qtyField;
private bool qtyFieldSpecified;
private int receiveQtyField;
private bool receiveQtyFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public int chsQty
{
get
{
return this.chsQtyField;
}
set
{
this.chsQtyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool chsQtySpecified
{
get
{
return this.chsQtyFieldSpecified;
}
set
{
this.chsQtyFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public int chsTally
{
get
{
return this.chsTallyField;
}
set
{
this.chsTallyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool chsTallySpecified
{
get
{
return this.chsTallyFieldSpecified;
}
set
{
this.chsTallyFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public int emptyTally
{
get
{
return this.emptyTallyField;
}
set
{
this.emptyTallyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool emptyTallySpecified
{
get
{
return this.emptyTallyFieldSpecified;
}
set
{
this.emptyTallyFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=3)]
public string eqoEqhtId
{
get
{
return this.eqoEqhtIdField;
}
set
{
this.eqoEqhtIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=4)]
public string eqoEqszId
{
get
{
return this.eqoEqszIdField;
}
set
{
this.eqoEqszIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=5)]
public string eqoEqtpId
{
get
{
return this.eqoEqtpIdField;
}
set
{
this.eqoEqtpIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=6)]
public int maxEmpty
{
get
{
return this.maxEmptyField;
}
set
{
this.maxEmptyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool maxEmptySpecified
{
get
{
return this.maxEmptyFieldSpecified;
}
set
{
this.maxEmptyFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=7)]
public int qty
{
get
{
return this.qtyField;
}
set
{
this.qtyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool qtySpecified
{
get
{
return this.qtyFieldSpecified;
}
set
{
this.qtyFieldSpecified = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=8)]
public int receiveQty
{
get
{
return this.receiveQtyField;
}
set
{
this.receiveQtyField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool receiveQtySpecified
{
get
{
return this.receiveQtyFieldSpecified;
}
set
{
this.receiveQtyFieldSpecified = value;
}
}
}
任何想法?
我們可以看到API036RsBkgDetRec的定義嗎? –
這是一個WCF服務還是ASMX? –
選擇'API036RsBkgDetRec'作爲類名的開發者應該面臨審判並由同行陪審團判決。 –