如果遍历一个类所有成员并保存TXT文件中 关键是如何像.item[i]这样输出类的值,不知用反射能不能做到?如果一个类成员变量只有几个倒容易,直接this.成员变量1+this.成员变量2+this.成员变量3+this.成员变量3就可以了,但如果如果几十个就很麻烦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个简单的代码,仅供参考: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);} Dictionary<string, List<data>> jilu = new Dictionary<string, List<data>>();data为一个类,如何才能保存该DICTIONARY对象的值呢? 序列化反序列化 (binary/xml) - 常用代码搜集,方便复用 对象序列化和反序列化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(); } } 楼上的方法我看到过,保存一个类进到二进制数组,但是怎么样才一下子保存一个包含了LIST<DATA>的DICTIONARY呢?能不能直接保存到一个文件当中呢 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(); } } 我这个实例包括了,类,LIST,DICTIONARY,这些都要序列化吗?!能不能把dictionary的多个List<T>保存到一个XML中? 这是我曾经写的一个类,使用序列化与反序列化,原则上可以用到任何对象上,楼主可以参考下。/// <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; } } 为什么在winxp下可以运行的代码在win7下就报错 C# 十六进制转十进制问题 必须声明标量变量 "@TaskSend"。 怎么用C#编一个写log日志的程序 继承关系中父类实例指向被强制转换为父类的子类,帮我看看,谢谢! s数据库连接问题 C#重绘控件:怎样去掉FROM\PANEL\BUTTON控件的背景颜色???急急急!!! VS2005 的 App.config配置问题,期待大家指点 高份求一例! 关于两个表之间的数据传递的问题! 在线等候!!!!!!!!! ListView一列显示 怎么限制TEXTBOX的值
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);
}
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();
}
}
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();
}
}
/// <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;
}
}