C# object类型与dynamic类型的使用
阅读原文时间:2023年09月02日阅读:5

获取动态变化的类型属性

例:

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