考虑以下简单示例:

[DataContract("{0}Base")]
public class Base<T> where T : Entity<T>
{
    // Common methods & properties.  No WCF exposed properties
}

[DataContract]
public class Employee : Base<Employee>
{
    // WCF exposed properties
}

基类基础对WCF服务消费者没有感兴趣的属性,但是WCF迫使我还用[Datacontract]属性注释基类。从本质上讲,这在服务客户端显示 Employee : EmployeeBaseEmployeeBase 是一个没有属性的空课。

我不想揭露 Base<T> 以这种方式上课,那么我有什么选择?

  1. DTO为员工课 - 我宁愿不添加这种复杂性
  2. “平坦”数据合同层次结构,以使员工的数据合同不会暴露其继承 Base<T>. 。这可能吗?如何?
  3. 其他解决方案?

谢谢。

有帮助吗?

解决方案

Hiechy中的每个类都必须序列化 /数据合同。如果您不想揭露Hiechyy,则必须使用DTO,也可以尝试为您的员工类实现IDATACNACTACTSUROGGATE。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top