Verwenden Sie einen freigegebenen Datentyp als DataContract in WCF

Nach allem, was ich sehen kann, muss ich für jede Art von Daten, die ich über WCF übertragen möchte, einen "speziellen" Datentyp erstellen. Wenn ich also eine gemeinsame Klasse habe wie

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

Wenn ich ein District-Objekt mit WCF senden möchte, muss ich einen Datenvertrag erstellen und daher eine neue WCF-Klasse erstellen

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

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

Und wenn ich es dann in einem WCF-Dienst in meiner Implementierung verwende, muss ich die Daten von einem Objekt zum anderen analysieren

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

Gibt es eine Möglichkeit, die gemeinsam genutzte Klasse einfach als DataContract wiederzuverwenden, ohne dass diese Attribute darauf vermerkt sind? Oder sollte ich eine Schnittstelle für die Klassen erstellen, die sie gemeinsam nutzen können, damit ich sie einfach zwischen ihnen umwandeln kann? Oder etwas drittes?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage