获取动态变化的类型属性
例:
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获取
手机扫一扫
移动阅读更方便
你可能感兴趣的文章