实现
ICustomAttributeProvider
接口的内容将允许你通过GetCustomAttributes
方法获取已应用于它的自定义属性。据我所知,自定义属性基本上是一个特殊类(以"Attribute"结尾并扩展Attribute
类),它被创建为使用适当的语法(例如,在C#中,在方法/类等前面添加[FooAttribute]
)应用于某些内容。但如果这是一个自定义属性,那么什么是非自定义属性?我曾经认为捆绑在.NET中的属性是非自定义的,但是GetCustomAttributes
甚至返回像System.ThreadStaticAttribute
这样对于.NET框架非常核心的属性。存在“非自定义属性”吗,还是“自定义属性”只是一种同义反复?
TypeAttributes
、MethodAttributes
、PropertyAttributes
、FieldAttributes
,以及其他一些属性都是你可以通过各种.Attributes
属性找到的非自定义属性:Type.Attributes
、MethodInfo.Attributes
等。 - wensveen