我有一个基类和另一个派生自它。假设,基类有 20 个成员,派生类有 5 个成员。只有派生类是可序列化的。
在我实例化之后,派生类的对象拥有全部 25 个成员。现在我怎样才能只序列化派生类的 5 个成员?当我使用“this”进行序列化或反序列化时,整个类(所有 25 个成员)都被序列化然后反序列化。
这是一个代码片段(不完整):
// Base class definition.
public abstract class baseMyClass
{
// declaration of members
}
...
// Derived class definition.
[Serializable]
public sealed class MyDerivedClass : baseMyClass
{
// declaration of members
}
...
// Serializing the object.
StringWriter writer = new StringWriter();
XmlSerializer xs = new XmlSerializer(typeof(MyDerivedClass));
xs.Serialize(writer, this);
...
// Deserializing the object.
StringReader reader = new StringReader(System.Text.Encoding.UTF8.GetString(data));
XmlSerializer xs = new XmlSerializer(typeof(MyDerivedClass));
MyDerivedClass objMyDerivedClass = (MyDerivedClass)(xs.Deserialize(reader));
我找不到任何类似的例子。如果你知道一个,请指点我。
感谢所有的帮助。