定义了一个类
public class A
{
  uint id;
  string name;
  Dictionary<string, object> paras;
}其中paras中的object类型我想存储结构变量如下:struct B   //key string:"0001" 
{
 uint b1;
 bool b2;
}struct C   //key string:"0002" 
{
 byte c1;
 string c2;
}......其中结构并未确定有多少,也就是可以增加、序列化时不要固定写死为结构体B或C。对于这样一个类如何进行xml序列化?谢谢!

解决方案 »

  1.   

    Dictionary 不能直接xml序列化, 转化成list再序列化
      

  2.   

    如果将object改为Enum呢?
    反序列化需要确定类型的哦
      

  3.   

    要系列化A,要给A标记上[Serializable]。
    Dictionary本身支持Serialization。但要成功系列化,必须它的key,value都是Serializable,否则会抛出SerializationException。...其中结构并未确定有多少,也就是可以增加、序列化时不要固定写死为结构体B或C。对于这样一个类如何进行xml序列化? 
    这个,不知道你在c#中如何做到"结构并未确定有多少,也就是可以增加、序列化时不要固定写死为结构体B或C"
      

  4.   

    谢谢,是实现IXmlSeralize好呢还是转化成list再序列化好?
    另外,如果事先不知道有什么结构,仅知道需要存储保存到字典中的结构变量,如何实现序列化?
      

  5.   

    不知道你在c#中如何做到"结构并未确定有多少,也就是可以增加、序列化时不要固定写死为结构体B或C"
    在一个类中定义所有的结构,通过映射机制获取所有的类型。这样可以吧?