C# 数据如何通过webserice序列化?

C# 数据如何通过webserice序列化?,c#,xml,oracle,C#,Xml,Oracle,我有一个winform客户端,它将对象传递给我的webservice(Oracle服务) <InputDateRange> <DateFrom>2014-01-01</DateFrom> <ScheduledDate>false</ScheduledDate> <DateTo>2014-04-03</DateTo> <DateHence>2 weeks hence</Date

我有一个winform客户端,它将对象传递给我的webservice(Oracle服务)

<InputDateRange>
  <DateFrom>2014-01-01</DateFrom>
  <ScheduledDate>false</ScheduledDate>
  <DateTo>2014-04-03</DateTo>  
  <DateHence>2 weeks hence</DateHence>
</InputDateRange>

2014-01-01
假的
2014-04-03  
两周后
DateHenceSpecified是服务的属性,我在C#代码中将bool值设置为false

OracleService.DateHenceSpecified=false

我从我的参考类中看到了这段代码

          /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool DateHenceSpecified {
        get {
            return this.dateHenceFieldSpecified;
        }
        set {
            this.dateHenceFieldSpecified = value;
            this.RaisePropertyChanged("DateHenceSpecified");
        }
    }
//
[System.Xml.Serialization.XmlIgnoreAttribute()]
指定的公共布尔值日期{
得到{
返回此.dateHenceFieldSpecified;
}
设置{
this.dateHenceFieldSpecified=值;
本.RaiseProperty变更(“指定日期”);
}
}
searlizer如何知道基于bool值省略此元素

若我在“OracleService.DateHenceSpecified=True”中提到,那个么我得到的值如下所示。我不明白,谁扣动了扳机,哪种元素必须产生

<InputDateRange>
    <DateFrom>2014-01-10</DateFrom>
    <ScheduledDate>false</ScheduledDate>
    <DateHence>1 week hence</DateHence>
</InputDateRange>

2014-01-10
假的
1周后
这里我不明白,谁创建了xml,是客户机还是服务?谁决定在xml中创建哪个元素


如果是客户机,客户机如何知道必须基于bool值创建哪个元素?

要序列化的不是属性。如您所见,它在属性上指定了属性XmlIgnore,因此它实际上不会序列化此属性。您应该在引用类DateThouse属性本身(不是DateHenceSpecified)中找到。感谢Michael moore,这对我来说很有意义