5
是系列化的繼承?
例子:
[Serializable]
class A
{
}
class B : A
{
}
如果我試圖序列化/反序列B類的一個實例,我得到一個異常,指出該類沒有標記爲可序列化。因此,問題是序列化是可以繼承的嗎?我只是想念如何去做,或者是否每個需要序列化的類都需要明確標記爲這樣?
是系列化的繼承?
例子:
[Serializable]
class A
{
}
class B : A
{
}
如果我試圖序列化/反序列B類的一個實例,我得到一個異常,指出該類沒有標記爲可序列化。因此,問題是序列化是可以繼承的嗎?我只是想念如何去做,或者是否每個需要序列化的類都需要明確標記爲這樣?
需要注意的是Serializable屬性不能被繼承是很重要的。如果從MyObject派生一個新類,那麼新類也必須標記爲該屬性,否則不能序列化。
你應該紀念的子類,以及讓它序列化:
[Serializable]
class B : A { }
小記; *在這種情況下*,該屬性的Inherited'屬性不直接相關(儘管它確實是正確的)。這是因爲在元數據層,'[Serializable]'***不是作爲屬性實現的,而是作爲CLI類標誌(你可以在IL流中檢查它)。 –
謝謝Marc的說明,它肯定是不重要的! –
@Marc Gravell:更改了文字並刪除了屬性引用...謝謝 –