首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中如何使用反射读取属性上的自定义特性的名称和值呢?

C#/.NET/.NET Core应用程序编程开发中如何使用反射读取属性上的自定义特性的名称和值呢?

.NET C# 反射 .NET Core 2.47K 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,假如有一个类Book,其中有一个属性NameName的属性中有自定义特性[Author("AuthorName")],如何使用反射读取这个自定义特性Author以及其中的参数并组成键值对呢(如:Author为键,AuthorName为值)?

示例类Book如下:

public class Book
{
    [Author("AuthorName")]
    public string Name
    {
        get; private set;
    }
}
回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    在C#应用程序编程开发中,可以使用typeof(Book).GetProperties()来读取实例对象的PropertyInfo属性信息集合,然后再使用GetCustomAttributes()方法读取每一个属性信息PropertyInfo的详细信息,实现代码如下(以一个字典作为返回值):

    Rector的个人主页

    Rector

    2020-01-28 回答

    • 0

      使用linq快速实现读取自定义属性并转换成字典,如下:

      Rector的个人主页

      Rector

      2020-01-28 回答

      • 0

        使用表达式树实现的泛型扩展方法,如下:

        调用方法如下:

        得到:// author = “AuthorName”

        Rector的个人主页

        Rector

        2020-01-28 回答

        我来回答