您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

反射-获取属性的名称和值

反射-获取属性的名称和值

使用typeof(Book).GetProperties()获得的阵列PropertyInfo实例。然后GetCustomAttributes()对每个对象使用,PropertyInfo以查看它们是否具有AuthorAttribute类型。如果这样做,则可以从属性信息中获取属性名称,并从属性获取属性值。

沿着这些思路进行一些操作,以扫描类型以查找具有特定属性类型的属性,并在字典中返回数据(请注意,可以通过将类型传递给例程来使其更加动态):

public static Dictionary<string, string> GetAuthors()
{
    Dictionary<string, string> _dict = new Dictionary<string, string>();

    PropertyInfo[] props = typeof(Book).GetProperties();
    foreach (PropertyInfo prop in props)
    {
        object[] attrs = prop.GetCustomAttributes(true);
        foreach (object attr in attrs)
        {
            AuthorAttribute authAttr = attr as AuthorAttribute;
            if (authAttr != null)
            {
                string propName = prop.Name;
                string auth = authAttr.Name;

                _dict.Add(propName, auth);
            }
        }
    }

    return _dict;
}
其他 2022/1/1 18:18:42 有528人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶