核心思想是使用反射把配置表中的数值赋给对象的属性。
直接上代码,代码里有比较详细的注释:
public static List<T> Load<T>() where T : new(){
//这里要注意配置对象要与配置文件名称相同
string[] names = (typeof(T)).ToString().Split('.');
//获取真实名称
string filename = names[names.Length - 1];
XmlDocument doc = new XmlDocument();
//加载xml文件
string data = Resources.Load("Config/"+filename).ToString();
doc.LoadXml(data);
XmlNode xmlNode = doc.DocumentElement;
XmlNodeList xnl = xmlNode.ChildNodes;
List<T> ret = new List<T>();
//遍历所有内容
foreach (XmlNode xn in xnl)
{
//找到符合条件的数据
if (xn.Name.ToLower() == filename)
{
//实例化数据对象
T obj = new T();
Type t = obj.GetType();
//获取对象的全部属性
FieldInfo[] fields = t.GetFields();
string msg = "";
try{
//遍历全部属性,并从配置表中找出对应字段的数据并赋值
//根据属性的类型对数据进行转换
foreach (FieldInfo f