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获取

 

posted @ 2023-08-11 11:14  HoFei1113  阅读(97)  评论(0编辑  收藏  举报