Я прочитал много вопросов о функции наследования в 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] внутри базового класса?
Спасибо за помощь в любой помощи
ви