Ich benutze Protobuf.net, um einige Klassen zu serialisieren. Ich möchte in der Lage sein, die SuperHero-Klasse (unten) zu serialisieren, ohne [ProtoInclude] für die Basisklasse angeben zu müssen. Dies liegt daran, dass die abgeleiteten Klassen automatisch generiert werden, die Basisklasse jedoch nicht, sodass die Basisklasse ihre abgeleiteten Klassen nicht direkt kennt.Protobuf.net: Umgang mit Vererbung ohne [ProtoInclude]
[ProtoContract]
class Person
{
[ProtoMember(1)]
public int Id { get; set; }
[ProtoMember(2)]
public string Name { get; set; }
}
[ProtoContract]
class SuperHero : Person
{
[ProtoMember(3)]
public string Powers { get; set; }
}
Ich verwende die neueste Version von protobuf.net.
sieht. Der "einige Mechanismus", den ich verwendete, war eine benutzerdefinierte Version des 'ProtoContractAttribute' zu erstellen, so dass ich eine abgeleitete Klasse mit '[Pr otoContract (7)] ', die sich genauso verhalten würden wie die Basisklasse mit' [ProtoInclude (typeof (SuperHero), 7)] 'zu dekorieren. Die Tatsache, dass die Attribute "versiegelt" sind, ist jedoch bedauerlich. –
Danke für die sehr schnelle Antwort! Das macht alles gut für mich. –