У меня есть два класса данных, которые содержат только элементы данных (без функций). Один CallTask другой SmsTask. Эти два класса имеют некоторые общие свойства, такие как ID, Тел. Я поместил эти общие свойства в отдельный класс интерфейса, и в этом случае я использую этот класс интерфейса в своем проекте.
Теперь я добавил WCFCervice в свой проект для обмена данными между клиентами и сервером. Рассмотрим следующий класс:
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, но это дает мне ошибку сложения. Не существует ли какой-либо methot, который я могу использовать в качестве DataContracts? Или как я должен использовать типы KnownAttributes в этом синергии?
Спасибо.