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

反射-获取属性的名称和值,第1张

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

使用

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

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

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;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5600043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存