自定义属性在属性上 - 获取属性的类型和值

18 浏览
0 Comments

自定义属性在属性上 - 获取属性的类型和值

我有以下自定义属性,可应用于属性上:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class IdentifierAttribute : Attribute
{
}

例如:

public class MyClass
{
    [Identifier()]
    public string Name { get; set; }
    public int SomeNumber { get; set; }
    public string SomeOtherProperty { get; set; }
}

还会有其他类,可以在不同类型的属性上添加Identifier属性:

public class MyOtherClass
{
    public string Name { get; set; }
    [Identifier()]
    public int SomeNumber { get; set; }
    public string SomeOtherProperty { get; set; }
}

然后,我需要在我的使用类中获取这些信息。

例如:

public class TestClass
{
    public void GetIDForPassedInObject(T obj)
    {
        var type = obj.GetType();
        //type.GetCustomAttributes(true)???
    }
}

如何最好地处理这个问题?

我需要获取[Identifier()]字段的类型(int,string等)和实际值,根据类型确定。

0