我有應用程序。在這裏我從WSDL生成客戶端服務。現在一些功能正常工作。但有些人錯了。爲什麼添加字段「指定」的字段總是空?
距離WSDL
<xs:complexType name="TStartInfoCalcZoneViewForArea">
<xs:sequence>
<xs:element minOccurs="0" name="ID" type="xs:int"/>
<xs:element minOccurs="0" name="startFreq" type="xs:double"/>
<xs:element minOccurs="0" name="endFreq" type="xs:double"/>
<xs:element minOccurs="0" name="startTime" type="xs:string"/>
的一部分,是在c#
public partial class TStartInfoCalcZoneViewForArea
{
private int idField;
private bool idFieldSpecified;
private double startFreqField;
private bool startFreqFieldSpecified;
private double endFreqField;
private bool endFreqFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public int ID
{
get
{
return this.idField;
}
set
{
this.idField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool IDSpecified
{
get
{
return this.idFieldSpecified;
}
set
{
this.idFieldSpecified = value;
}
}
予設定值到該字段的一部分。例如
.ID = 100;
.IDSpecified = true; // I set nothing, false. But result is same.
的問題是,所有這些字段(ID,endFreq,startFreq)是gSOAP的服務器空。
這個問題的原因是什麼?我該如何解決它?
更新 - 原因和解決方案
的問題是:我沒有「gSOAP的服務器」的源代碼。但根據我們公司的協議,我們使用(可以觀看)來自此應用程序的日誌。這個日誌是不正確的(首先,在這種情況下沒有日誌消息,然後這個消息是不正確的,修復後問題解決了)。
也有很多類和結構與「雙」字段。所以在某些類的實例中,我設置了「... Specified = true;」。在另一種情況下,我沒有設置「......指定=真實」。日誌修復後,我看到了問題。
所以我需要設置「... Specified = true;」在所有的班級。我不知道這是正確的解決方案,因爲
1)我問我們公司的另一位程序員,但他們不知道wcf正常。
2)set「... Specified = true;」,但我在日誌中看到相同的消息。
謝謝。我的問題是我設置了所有的值。 ID = 100 startFreq = 1500 endFreq = 2500;但在gsoap應用程序中,這些字段爲空(其他字段很好) – novicegis
@novicegis:和**是否設置了**隨附的....指定的字段爲真TRUE **如果您沒有將這些字段設置爲** TRUE **,那麼您的值**不會被序列化到消息中! –
是的,我設置爲true – novicegis