C# 不是序列化xml 转实体Model【原家独创】

public static T XmlConvertModel<T>(string xmlStr) where T : class, new()
        {
            T t = new T();
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(xmlStr);
            foreach (XmlNode xnls in xmlDoc.ChildNodes)
            {
                if (xnls.Name.ToUpper() == typeof(T).Name.ToUpper())
                {
                    foreach (XmlNode xnl in xnls.ChildNodes)
                    {
                        System.Reflection.PropertyInfo[] propertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
                        foreach (System.Reflection.PropertyInfo pinfo in propertyInfo)
                        {
                            if (xnl.Name.ToUpper() == pinfo.Name.ToUpper())
                            {
                                pinfo.SetValue(t, xnl.InnerText, null);
                                break;
                            }
                        }
                    }
                }
            }
            return t;

        }