考虑以下简单示例:
[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
}
基类 Base 没有 WCF 服务消费者感兴趣的属性,但 WCF 迫使我也用 [DataContract] 属性注释 Base 类。这实质上显示在服务客户端上,就像Employee : EmployeeBase
是EmployeeBase
一个没有属性的空类。
我不想以Base<T>
这种方式将类公开给服务,那么我有什么选择?
- Employee 类的 DTO - 我不想增加这种复杂性
- “展平” DataContract 层次结构,以便 Employee 的数据协定不会暴露它继承自
Base<T>
. 这可能吗?如何? - 其他解决方案?
谢谢。