我有应用程序。这里我从 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;”。修复日志后,我看到了问题。
所以我需要设置“...Specified = true;” 在所有课程中。我不知道这个解决方案是否正确,因为
1)我问了我们公司的另一个程序员,但他们不知道wcf正常。
2) 设置“...Specified = true;”,但我在日志中看到相同的消息。