2

我有一个类(比如 CustomClass),它的 type 属性很少IEnumerable<Enum>

CustomClass通过WCF传递对象并返回Result类型(不同类型)的对象。

如果我CustomClass在 WCF 完成所有操作并将响应发送回客户端后检查参数,则CustomClass参数具有该值,但是当响应到达客户端时,CustomClass清除该 List 属性的所有内容的对象。

我只想知道,为什么?

类的结构Custom

 public class QuerySearchCriteria 
 {       
    [DataMember]
    public string DScope { get; set; }

    [DataMember]
    public IEnumerable<SOURCE> Sources { get; set; }

    [DataMember]
    public IEnumerable<ETYPE> ETypes { get; set; }

    [DataMember]
    public IEnumerable<Score> Score{ get; set; }       
}

一切都很好,但是Score财产中的物品被删除了。

4

1 回答 1

0

只是根据您提供的信息进行猜测,但它是Score一个可序列化的类吗?在 WCF 中,枚举会自动包含在内,因为它们已被标记Serializable ,除非您手动将 Enum 类型类标记为DataContract. 在这种情况下,您需要将 Enum 的每个成员标记为EnumMember. 这个SO question and answer很好地解释了它是如何工作的。

如果我猜错了 :) 那么您应该启用WCF 跟踪并发布该服务正在创建的肥皂,以获取有关正在发生的事情的更多详细信息。此外,发布Score课程的来源会有所帮助。

于 2013-01-08T13:31:39.070 回答