Рассмотрим следующий простой пример:
[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]. По существу, это проявляется на клиенте службы как Employee : EmployeeBase
, где EmployeeBase
- пустой класс без свойств.
Я не хочу предоставлять сервису класс Base<T>
таким образом, каковы мои варианты?
- DTO для класса Employee - я бы не стал добавлять эту сложность
- «Свести» иерархию DataContract, чтобы контракт данных для Employee не раскрыл, что он наследуется от
Base<T>
. Это возможно? Как?
- Другое решение?
Спасибо.