Хорошо, у меня есть следующий код, который работал, но теперь это не так.Единственное, что изменилось, теперь я использую VS2010 и .NET4
[ProtoContract]
[ProtoInclude(1, typeof(DerivedClass))]
public abstract class BaseClass
{
[ProtoMember(2)]
protected virtual string MyString { get; set; }
}
[ProtoContract]
public class DerivedClass : BaseClass
{
[ProtoMember (2)]
public readonly int SomeInt = 10;
protected override string MyString
{
get { return "dummy"; }
set { base.MyString = value; }
}
}
[Test]
public void Test()
{
var derived = new DerivedClass();
using (Stream s = new MemoryStream ())
Serializer.Serialize(s, derived); // InvalidOperationException: Duplicate tag 2 detected in SomeInt
}
Есть ли что-то, чего мне здесь не хватает?
Я вижу, что PB раздражает тот же номер тегадля обоих классов, когда я переопределяю родительское свойство, которое использует тот же номер тега, но я думал, что это будет изолировано ...