我有一个类(比如CustomClass),它的属性很少IEnumerable<Enum>
。
将CustomClass
的对象传递给WCF并返回Result
类型的对象(不同类型)。
如果我在WCF完成所有操作后检查CustomClass
参数并将响应发送回客户端,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
属性中的项目已删除。
答案 0 :(得分:0)
根据您提供的信息进行猜测,但Score
是一个可序列化的类?在WCF中,枚举会自动包含在内,因为它们已标记为Serializable
,除非您已使用DataContract
手动标记了枚举类型类。在这种情况下,您需要将枚举的每个成员标记为EnumMember
。这个SO question and answer很好地解释了它是如何工作的。
如果我猜错了:)那么你应该启用WCF tracing并发布服务创建的肥皂,以获得有关正在发生的事情的更多细节。另外,发布Score
课程的来源会很有帮助。