关键是如何像.item[i]这样输出类的值,不知用反射能不能做到?如果一个类成员变量只有几个倒容易,直接this.成员变量1+this.成员变量2+this.成员变量3+this.成员变量3就可以了,但如果如果几十个就很麻烦。

解决方案 »

  1.   

    给个简单的代码,仅供参考:
    Type t = typeof(System.String);//“System.String” 是类名
    string className = t.Name;
    Console.WriteLine(className);
    System.Reflection.MethodInfo[] methods = t.GetMethods();
    foreach (System.Reflection.MethodInfo method in methods)
    {
         Console.WriteLine( method.Name);
    }
               //获取所有成员 
    System.Reflection.MemberInfo[] members = t.GetMembers();          //获取所有属性 
    System.Reflection.PropertyInfo[] properties = t.GetProperties();
    foreach (System.Reflection.PropertyInfo property in properties)
    {
         Console.WriteLine(property.Name);
      

  2.   

    Dictionary<string, List<data>>  jilu = new Dictionary<string, List<data>>();data为一个类,如何才能保存该DICTIONARY对象的值呢?
      

  3.   

    序列化反序列化 (binary/xml) - 常用代码搜集,方便复用 
      

  4.   

    对象序列化和反序列化
    public static void SaveXml(string filePath, object obj, System.Type type)
      {
      using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
      {
      System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(type);
      xs.Serialize(writer, obj);
      writer.Close();
      }
      }
      

  5.   

    楼上的方法我看到过,保存一个类进到二进制数组,但是怎么样才一下子保存一个包含了LIST<DATA>的DICTIONARY呢?能不能直接保存到一个文件当中呢
      

  6.   

    List<T> lst=new List<T>();
    XmlSerializer ser = new XmlSerializer(typeof(List<T>));
    ser.Serialize(File.Create("C:\\A.xml"), lst);
    public static string Serialize<T>(T t)
      {
      using (StringWriter sw = new StringWriter())
      {
      XmlSerializer xz = new XmlSerializer(t.GetType());
      xz.Serialize(sw, t);
      return sw.ToString();
      }
      } 
      

  7.   

    我这个实例包括了,类,LIST,DICTIONARY,这些都要序列化吗?!能不能把dictionary的多个List<T>保存到一个XML中?
      

  8.   

    这是我曾经写的一个类,使用序列化与反序列化,原则上可以用到任何对象上,楼主可以参考下。
    /// <summary>
        /// 不能实例化,提供两个静态方法,帮助对象与Xml文件相互转换,对象访问级别必须是公有的,且必须提供一个无参构造函数
        /// </summary>
        public class ObjectAndXmlFile
        {
            private ObjectAndXmlFile()
            {
            }
            /// <summary>
            /// 将对象的所有公共字段序列化到文件中,未提供异常处理
            /// </summary>
            /// <param name="a">要序列化的对象,对象必须是Public</param>
            /// <param name="xmlFile">序列化的文件</param>
            /// <returns>序列化完毕后返回True</returns>
            static public bool ObjectToXmlFile(object a,string xmlFile)
            {
                XmlSerializer xmlSer = new XmlSerializer(a.GetType());
                StreamWriter myWriter = new StreamWriter(xmlFile);
                xmlSer.Serialize(myWriter, a);
                myWriter.Close();
                return true;
            }
            /// <summary>
            /// 将文件反序列化到对象中,未提供异常处理
            /// </summary>
            /// <param name="objType">对象的类型</param>
            /// <param name="xmlFile">要反序列化的文件</param>
            /// <returns>序列化得到的对象</returns>
            static public object ObjectFromXmlFile(Type objType, string xmlFile)
            {
                XmlSerializer xmlSer = new XmlSerializer(objType);
                FileStream myFileRead = new FileStream(xmlFile, FileMode.Open);
                object a = xmlSer.Deserialize(myFileRead);
                myFileRead.Close();
                return a;
            }
        }