WCF не сериализует все свойства

Я использую службу SOAP, которая была импортирована в качестве ссылки службы в VS2010. Я вызываю одну из служб с объектом запроса, который предоставляется службой. Проблема, с которой я столкнулся, заключается в том, что не все свойства объекта сериализованы или, скорее, не отправляются по сети. Объект запроса выглядит так:

var serviceRequest = new UpdateRequest{
    StoreId = request.StoreId,
    Id = request.Id,
    Status = (Status)Enum.Parse(typeof(Status), request.myStatus.ToString()),
    parameters = request.Parameters,
    validFrom = request.ValidFrom.Value,
    validFromSpecified = request.ValidFromSpecified
};

А вот что отправляется по сети. Я зафиксировал это с помощью wirehark

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<updateStore xmlns="http://localhost.service.com/">
    <StoreRequest>
    <StoreId>1234</StoreId>
    <validFrom>2011-11-29T00:00:00</validFrom>
    <parameters>
        <param1>true</param1>
    </parameters>
    </StoreRequest>
</updateStore>
</s:Body>
</s:Envelope>

. Два параметра, Id и Status, не были отправлены в службу, и я просто не могу понять, почему. Значения устанавливаются, и сгенерированные WSDL свойства являются общедоступными и имеют те же атрибуты сериализации, что и сериализуемые свойства.

Любая помощь будет принята с благодарностью.

Изменить ---- Обновлено с помощью кода, сгенерированного служебной ссылкой

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://myservice.com/")]
public partial class StoreUpdateRequest : object,        
System.ComponentModel.INotifyPropertyChanged {
    private long StoreIdField;        
    private long IdField;        
    private bool IdFieldSpecified;        
    private Status StatusField;        
    private bool StatusFieldSpecified;        
    private long storeIdField;        
    private bool storeIdFieldSpecified;        
    private System.DateTime validFromField;        
    private bool validFromFieldSpecified;        
    private System.DateTime validToField;        
    private bool validToFieldSpecified;        
    private technicalParameters parametersField;        
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Order=0)]
    public long StoreId {
        get {
            return this.StoreIdField;
        }
        set {
            this.StoreIdField = value;
            this.RaisePropertyChanged("StoreId");
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Order=1)]
    public long Id {
        get {
            return this.IdField;
        }
        set {
            this.IdField = value;
            this.RaisePropertyChanged("Id");
        }
    }
7
задан Gargamel 29 November 2011 в 14:40
поделиться