首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中如何判断一个类中的某个成员属性是否有特定的属性标识?

C#/.NET/.NET Core应用程序编程开发中如何判断一个类中的某个成员属性是否有特定的属性标识?

.NET C# 属性 .NET Core 658 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,如何判断一个类中的某个成员属性是否有特定的属性标识?比如现在有一个Person类,现在需要判断Person类中的成员属性Id上是否有IsIdentity这个属性标识,应该如何实现呢?

Person类定义如下:

public class Person
{
    [IsNotNullable]
    [IsPK]
    [IsIdentity]
    [SequenceNameAttribute("Id")]
    public Int32 Id
    {
        get
        {
            return _Id;
        }
        set
        {
            _Id = value;
        }
    }
}
回复 [×]
提交评论
请输入评论内容

4 个回答

  • 0

    首先使用反射读取类中的指定成员属性名的属性信息,然后再用Attribute.IsDefined()方法便可获取到属性标识的结果,如下:

    如果需要获取指定属性标识的完整信息,则可以使用成员属性信息的GetCustomAttributes()方法,如下:

    Rector的个人主页

    Rector

    2020-05-08 回答

    • 0

      如果是在.NET Framework 3.5+版本中,你还可以使用表达式树来实现,它比反射更加安全,如下:

      Rector的个人主页

      Rector

      2020-05-08 回答

      • 0

        创建一个读取属性标识的泛型方法,如下:

        Rector的个人主页

        Rector

        2020-05-08 回答

        • 0

          使用LINQ来读取成员属性的属性标识信息,如下:

          Rector的个人主页

          Rector

          2020-05-08 回答

          我来回答