Используйте общий тип данных как DataContract в WCF

Из того, что я вижу, я должен создатьспециальный" тип данных для каждого вида данных, которые я хочу передать через WCF, поэтому, если у меня есть общий класс, например

public class District
{
    public long Id { get; set; }
    public string Name { get; set; }
}

и я хочу отправить объект District с помощью WCF, мне нужно создать datacontract и, следовательно, я должен создать новый класс WCF

[DataContract]
public class WCFDistrict
{
    [DataMember]
    public long Id { get; set; }

    [DataMember]
    public string Name { get; set; }
}

И затем, когда я использую его в сервисе WCF в моей реализации, я должен проанализировать данные из одного объекта в другой

public WCFDistrict GetDistrict(long id)
{
    var district = _districtRepository.GetDistrict(id);
    return new WCFDistrict {Id = district.Id, Name = district.Name};
}

Есть ли способ просто повторно использовать общий класс как DataContract, не имея этих атрибутов на нем? Или я должен создать интерфейс для классов, которыми они могут поделиться, чтобы я мог просто разыграть его между ними? Или что-то третье?

Ответы на вопрос(2)

Ваш ответ на вопрос