2011-08-29 89 views
0

我具有許多從一個抽象基類派生的類。這些派生類必須是序列化到XML然而,他們沒有一個無參數的構造函數。有大量的派生類的,所以我不希望要回去,並添加一個參數的構造函數到他們。XML序列化 - 默認構造

我希望有什麼東西我可以用基類,讓他們成爲系列化,而無需修改每個單獨的類做。任何人有任何想法如何可以實現?

這裏的類的一個基本的例子:

public abstract class MyBase 
{ 
    internal MyBase() 
    { } 

    //Various abstract properties here 
} 

public class MyDerivedClass : MyBase 
{ 
    //Various methods/Properties here 
} 
+3

不,我很抱歉 - 如果您想要使用Xml Serializer序列化並反序列化一個類,那麼該類(而不是它的基類)需要一個無參數構造函數 –

+0

這麼想,但考慮到它的時間將採取無參數的構造函數添加到所有派生類認爲我最好的得到確認。感謝您的快速回復 – Stuart

回答

0

,你將有最大的問題,就是因爲它是抽象的,你不能deserialise的MyBase一個實例。這意味着你將需要做一些關於如何構造類的東西。

可能是這種情況,您只需要點擊並添加一個合適的構造函數(無參數),並依賴默認的[Serializable]屬性,或者通過實現ISerializable來自定義類的序列化方式。