我使用的是xml格式序列化如果写成这样的形式,可以正常使用
    [Serializable]
    public class a
    {
        public b item
    }    [Serializable]
    public class b
    {
        public string name
    }
但现在要求写成这样    [Serializable]
    public class a
    {
        public object item
    }    [Serializable]
    public class b
    {
        public string name
    }
就报xml序列化错误了
请问如何解决?

解决方案 »

  1.   

    item是object类型的,它没有标记为Serializable,你可以在class a中实现ISerializable接口,自定义序列化操作。
      

  2.   

    如果只是序列化成XML的话,class a中实现IXmlSerializable接口,自定义XML序列化操作
      

  3.   

    楼主帖的代码有些小问题。
     [Serializable] 
        public class a 
        { 
            public object item 
        }     [Serializable] 
        public class b 
        { 
            public string name 
        } 这时,xml序列化class a是不会出错的,原因是item 为null,是不参与序列化的。
    如果是这样就不能xml序列化了
     [Serializable] 
        public class a 
        { 
            public object item = new b();
        }     [Serializable] 
        public class b 
        { 
            public string name = string.empty;
        } 二进制序列化可以序列化反序列化object
      

  4.   

    我没有试,你可以试试    [Serializable] 
        public class a 
        { 
            public object item 
        }     [Serializable] 
        public class b:Object 
        { 
            public string name 
        } 
      

  5.   

    关于序列化与反序列化可以参考一下MSDN.
    也可以参考以下地址:
    http://www.hiwiz.com/NewsList.aspx?nc_id=CHENGXVSHEJI&searchType=1&keyWord=%E5%BA%8F%E5%88%97%E5%8C%96&x=41&y=19