Ho letto molte domande sulla funzione di ereditarietà in protobuf-net. Mi chiedo solo se posso usare [DataContract], [DataMember] allo stesso modo di usare [ProtoContract], [ProtoMember]. Perché non ho potuto usare [KnowType] invece di usare [ProtoInclude]?Perché devo usare [ProtoInclude]?
Ho sollevato questa domanda perché ho utilizzato [DataContract], [DataMember] per la serializzazione di protobuf-net già. Non è stato necessario aggiungere "Protobuf-net". Ha usato solo "System.Runtime.Serialization".
Ma ... Ora se la mia classe ha bisogno di ereditare da qualche classe, devo aggiungere "Protobuf-net" per l'attributo [ProtoInclude]? per esempio,
using System.Runtime.Serialization;
namespace test
{
[DataContract]
/// [KnowType(typeof(SomeClass))]
/// or
/// [ProtoInclude(100,typeof(SomeClass))]
public class BaseClass
{
//...
[DataMember(Order=1)]
public string BlahBlahBlah {get; set;}
}
[DataContract]
public class ChildClass1 : BaseClass
{
//...
[DataMember(Order=1)]
public string BlahBlahBlah {get; set;}
}
}// end namespace
finalmente, mi chiedo se ho 100 classe figlia, volontà non guido io pazzo aggiungendo 100 [ProtoInclude] Tag all'interno della classe di base?
Thx in adv per qualsiasi aiuto
vee
Si noti che questo non è più vero in v2 –
@Marc; Thx per l'aggiornamento. proverò su v2 allora. – tong