首页 > 后端开发 > C++ > 如何使用C#中的反射检索属性属性和值?

如何使用C#中的反射检索属性属性和值?

Susan Sarandon
发布: 2025-01-29 07:58:09
原创
730 人浏览过

How Can I Retrieve Attribute Properties and Values Using Reflection in C#?

使用反射检索属性值

假设我们有一个类,其属性带有元数据,我们希望通过反射检索属性名称和值。例如,该类有一个名为Name的属性,并关联了一个Author属性。

我们可以使用typeof(Book).GetProperties()来检索Book类的属性信息。对于每个属性,我们使用GetCustomAttributes()来检查与所需类型(例如Author属性)匹配的属性。

一旦找到Author属性,我们就可以从PropertyInfo实例中获取属性名称,并从属性本身获取属性值。 以下代码实现扫描类型、识别带有Author属性的属性,并生成包含属性详细信息的字典:

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

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

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

    return _dict;
}
登录后复制

此方法能够在运行时检索具有特定属性的属性的属性名称和值。

以上是如何使用C#中的反射检索属性属性和值?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板