Почему я должен использовать [ProtoInclude]?

Я прочитал много вопросов о функции наследования в protobuf-net. Мне просто интересно, если я могу использовать [DataContract], [DataMember] таким же образом, как с помощью [ProtoContract], [ProtoMember]. Почему я не смог использовать [KnowType] вместо [ProtoInclude]?

Я поднимаю этот вопрос, потому что я уже использовал [DataContract], [DataMember] для сериализации protobuf-net. Не было необходимости добавлять «Protobuf-net». Используется только «System.Runtime.Serialization».

Но ... Теперь, если мой класс должен наследовать от какого-то класса, мне нужно добавить «Protobuf-net» для атрибута [ProtoInclude]? например,

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

наконец, мне интересно, есть ли у меня 100 дочерних классов, не схожу ли я с ума, добавив 100 тегов [ProtoInclude] в базовый класс?

Спасибо в Adv для любой помощи

ви

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

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