这是一个后续问题:
我在遗留代码中有一个属性,这让我对 .NET 4.5 的序列化感到悲痛。
这是属性:
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
private new object Value
{
get
{
return base.Value;
}
set
{
base.Value = value;
}
}
这可能是为了尝试隐藏基类的“Value”属性而引入的。到目前为止唯一有效的解决方案是让序列化程序知道我想在 .NET4 中序列化。但这对我来说是个问题。(只有在 traget 计算机上安装了 .NET 4.5 时才应设置此配置,否则会引发异常)。
我想我可以一起删除该属性,但是由于我正在处理一个庞大而复杂的遗留系统,我不确定可能会产生什么副作用。
所以我的问题是双重的:
为什么继承的属性会破坏 .NET 4.5 序列化?
如果我删除继承的属性,我应该期待什么讨厌的副作用?