C# object类型与dynamic类型的使用
获取动态变化的类型属性
例:
var类型的参数a中包含属性Name或Age
获取这个不固定的数据
首先验证a中存在的是什么属性
/// <summary> /// 验证object类型是否存在某属性 /// </summary> /// <param name="obj">数据</param> /// <param name="propertyName">属性名</param> /// <returns></returns> public static bool HasProperty(object obj, string propertyName) { var type = obj.GetType(); var propertyInfo = type.GetProperty(propertyName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); return (propertyInfo != null); }
定义一个string,来储存属性名
string name="Name";
加入Name数据是string类型
string data= (dynamic)a.GetType().GetProperty(name).GetValue(a);
将a转为dynamic类型,然后通过GetType().GetProperty(name)获取属性类型,最后通过GetValue(a)获取a中这个属性的数据
如果a中类型固定
可以直接通过(dynamic)a.Name获取