這是一個後續問題:錯誤序列化繼承財產在.NET 4.5
Serialization breaks in .NET 4.5
我在這是造成我的悲傷中的序列化的.NET 4.5的遺留代碼的屬性。
這是屬性:
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
private new object Value
{
get
{
return base.Value;
}
set
{
base.Value = value;
}
}
這可能是引入試圖隱藏基類的「值」屬性。 到目前爲止,唯一的解決方案是讓 讓序列化程序知道我想在.NET4中序列化。 但這對我來說是個問題。 (只有在.NET 4.5安裝在Traget計算機上時,才應該設置此配置,否則會引發異常)。
我想我可以一起刪除屬性,但由於我正在處理一個龐大而複雜的遺留系統,我不知道副作用可能是什麼。
所以我quesion是雙重的:
爲什麼inhertied財產中斷.net 4.5序列化?
如果我刪除繼承的屬性,我應該期待什麼討厭的副作用?
謝謝。如果我將編譯類型更改爲4.5,這是否可行?因爲在這種情況下,舊版本的標記將無濟於事,因爲這是在4.5版本中編譯的4.0否 – 2013-03-14 18:30:55
如果您在4.5運行時運行4.5/4.0目標應用程序,則此開關運行良好。但是,如果您在純4.0機器上運行4.0目標應用程序,交換機將失敗。但是,如果您在純4.0運行時運行應用程序,則不需要此配置開關,因爲您的解串器在此處已經正常工作。所以你只需要根據你的機器的運行時間有條件地配置這個配置開關。 – Praburaj 2013-03-14 19:07:23