у меня есть два класса данных, которые содержат только члены данных (без функций). Один - CallTask , другой - SmsTask . Эти два класса имеют некоторые общие свойства, такие как ID , Tel . Я поместил эти общие свойства в отдельный класс интерфейса и использую этот класс интерфейса в своем проекте, когда это уместно.
Теперь я добавил WCFService в свой проект для обмена данными между клиентами и сервером. Рассмотрим следующий дизайн класса:
public interface IGsmTask : IComparable
{
string TaskID { get; set; }
string SessionID { get; set; }
string Tel { get; set; }
}
class CallTask : IGsmTask
{
#region IGsmTask Members
public string TaskID { get; set; }
public string SessionID { get; set; }
public string Tel { get; set; }
#endregion
}
class SmsTask : IGsmTask
{
#region IGsmTask Members
public string TaskID { get; set; }
public string SessionID { get; set; }
public string Tel { get; set; }
#endregion
public string SmsText { get; set; }
}
в этом дизайне я хочу разместить CallTask, SmsTask и IGsmTask для клиентов, чтобы использовать их в методах обслуживания, как показано ниже:
[OperationContract]
public void AddTask(IGsmTask task)
{
}
Я пытался пометить [DataContract] на IGsmTask , но это дает мне ошибку завершения. Есть ли какой-либо метод, который я могу использовать интерфейсы как DataContracts? Или как мне использовать типы KnownAttributes в этом synerio?
Спасибо.