我有这样的类结构:
class A {
Dictionary<UInt64, B> listB;
method1(){}
methodN(){}
}
class B {
Dictionary<UInt32, C> listC;
Dictionary<UInt32, E> listE;
List<F> listF;
method1(){}
methodN(){}
}
class C {
Dictionary<UInt32, D> listD;
method1(){}
methodN(){}
}
class D {
method1(){}
methodN(){}
}
class E {
method1(){}
methodN(){}
}
class F {
method1(){}
methodN(){}
}
A类是主类,B是A的子类。所有其他类都是B的子类。
我想用所有子类序列化A类。
如何序列化这些对象?
谢谢!
答案 0 :(得分:1)
因为你说你想通过套接字来做,可能是这样的:
public void SerializeObject(NetworkStream stream, ObjectToSerialize objectToSerialize)
{
varbFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, objectToSerialize);
stream.Close();
}
public ObjectToSerialize DeSerializeObject(NetworkStream stream)
{
ObjectToSerialize objectToSerialize;
var bFormatter = new BinaryFormatter();
objectToSerialize = (ObjectToSerialize)bFormatter.Deserialize(stream);
stream.Close();
return objectToSerialize;
}
编辑:注意:代码未经测试。它可能需要一些修改,具体取决于您的流
和Brad评论一样,给你所有的类提供SerializableAttribute。
[Serializable]
class A {
...
}
答案 1 :(得分:0)
你看过BinaryFormatter
了吗?如果客户端具有完全相同的二进制文件,那么这是最简单的方法。