【发布时间】:2022-09-27 17:14:47
【问题描述】:
假设我有以下类结构:
基类:
[ProtoContract]
[ProtoInclude(10, typeof(Store))]
[ProtoInclude(11, typeof(House))]
public abstract class Address
{
[ProtoMember(1)] Id ;
[ProtoMember(2)] string Country;
[ProtoMember(3)] string Pincode;
}
儿童班 1:
[ProtoContract]
public class Store: Address
{
[ProtoMember(1)] int StoreUniqueid;
[ProtoMember(2)] string StoreUniqueValue;
[ProtoMember(3)] string Pincode;
}
幼儿班 2:
[ProtoContract]
public class House : Address
{
[ProtoMember(1)] int HouseArea;
}
现在,我需要将 Store 类的“Pincode”属性引入 House 类。
解决此问题以保持向后兼容性的理想方法应该是什么?
选项 1:将 Store 类的 Pincode 属性移动到 Address(基)类。但是,这可能会产生向后兼容性问题,因为我们必须从 Store 类中删除 Pincode 属性。
选项 2:在 House 类中添加另一个相同的属性(Pincode),如下所示(不确定这是否是正确的方法。)
[ProtoContract]
public class House: Address
{
[ProtoMember(1)] int HouseArea;
[ProtoMember(2)] string Pincode;
}
标签: .net protobuf-net