public class Base_all
{
static System.Reflection.FieldInfo fi;
public static void Set(object o,string var_name, string value)
{
fi = o.GetType().GetField(var_name, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.NonPublic| System.Reflection.BindingFlags.Instance);
o.GetType().GetField(var_name, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(o, Prase(fi.FieldType, value));
}
public static object Get(object o, string var_name)
{
return o.GetType().GetField(var_name, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public|
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(o);
}
public static object Prase(System.Type t, string s)
{
if (t == typeof(bool))
{
return bool.Parse(s);
}
if (t == typeof(float))
{
return float.Parse(s);
}
if (t == typeof(int))
{
return int.Parse(s);
}
if (t == typeof(string))
{
return s;
}
return null;
}
public static void Save_init(object o, string p)
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(p);
if (!fileInfo.Directory.Exists)
{
fileInfo.Directory.Create();
}
string s = "";
System.Reflection.FieldInfo[] fis = o.GetType().GetFields(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
for (int i = 0; i < fis.Length; i++)
{
if (Ishavetype(fis[i].FieldType))
{
s += fis[i].Name + "\t" + fis[i].GetValue(o) + "\n";
}
}
System.IO.File.WriteAllText(p, s, System.Text.Encoding.UTF8);
}
public static bool Ishavetype(System.Type t)
{
if (t == typeof(bool))
{
return true;
}
if (t == typeof(float))
{
return true;
}
if (t == typeof(int))
{
return true;
}
if (t == typeof(string))
{
return true;
}
return false;
}
public static void Load_init(object o,string s)
{
string[] vs = s.Replace("\r", "").Split('\n');
string[] ps;
for (int i = 0; i < vs.Length; i++)
{
ps = vs[i].Split('\t');
if (ps.Length > 1)
{
Set(o,ps[0], ps[1]);
}
}
}
}
自己可以根据需求设置任意类型的数据,object 为实列化对象,var_name变量名,value修改值