我有一个类(比如 CustomClass),它有几个 IEnumerable<Enum> 类型的属性.
传递CustomClass的对象通过 WCF 并返回 Result 的对象类型(不同类型)。
如果我检查 CustomClass WCF 中的参数在其完成所有操作并即将向客户端发送响应后,CustomClass参数具有该值,但是当响应到达客户端时,CustomClass 的对象清除该列表属性的所有内容。
我只想知道,为什么?
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 中的项目属性被删除。
请您参考如下方法:
只是根据您提供的信息进行猜测,但是 Score 是一个可序列化的类吗?在 WCF 中,枚举会自动包含,因为它们被标记为 Serializable 除非您已使用 DataContract 手动标记 Enum 类型类。在这种情况下,您需要将 Enum 的每个成员标记为 EnumMember。这SO question and answer对它的工作原理有很好的解释。
如果我猜错了 :) 那么你应该启用 WCF tracing并发布服务正在创建的 soap 以获取有关正在发生的事情的更多详细信息。此外,发布 Score 类的源代码也会有所帮助。
