小编Gar*_*mel的帖子

我应该返回'null'还是空数组?

假设您有一个方法应该创建并返回某种类型的数组.如果数组没有填充,该怎么办?你返回一个空数组还是null/nothing?

.net coding-style

16
推荐指数
2
解决办法
4165
查看次数

WCF不会序列化所有属性

我正在使用已在VS2010中作为服务引用导入的SOAP服务.我使用服务提供的请求对象调用其中一个服务.我遇到的问题是并非所有对象的属性都被序列化,或者不是通过线路发送.请求对象如下所示:

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
};
Run Code Online (Sandbox Code Playgroud)

这是通过电线发送的内容.我用wireshark抓住了它

<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>
Run Code Online (Sandbox Code Playgroud)

其中两个参数,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 …
Run Code Online (Sandbox Code Playgroud)

.net service wcf serialization soap

7
推荐指数
1
解决办法
4952
查看次数

标签 统计

.net ×2

coding-style ×1

serialization ×1

service ×1

soap ×1

wcf ×1