He leído muchas preguntas sobre la función de herencia en protobuf-net. Me pregunto si puedo usar [DataContract], [DataMember] de la misma manera que con [ProtoContract], [ProtoMember]. ¿Por qué no pude usar [KnowType] en lugar de usar [ProtoInclude]?¿Por qué tengo que usar [ProtoInclude]?
Planteo esta pregunta porque ya utilicé [DataContract], [DataMember] para la serialización de protobuf-net. No fue necesario agregar "Protobuf-net". Solo usó "System.Runtime.Serialization".
Pero ... Ahora, si mi clase necesita heredar de alguna clase, ¿tengo que agregar "Protobuf-net" para el atributo [ProtoInclude]? por ejemplo,
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
por último, me pregunto si tengo 100 clase hija, ¿No voy a conducir yo loco adición de 100 etiquetas [ProtoInclude] dentro de la clase base?
Thx adv por cualquier ayuda
uve
Tenga en cuenta que esto ya no es cierto en v2 –
@Marc; Thx para la actualización. Voy a probar con v2 entonces. – tong