何时创建属性对象?

Dan*_*ann 12 c# attributes

由于属性实际上只是附加到程序集的元数据,这是否意味着属性对象仅在请求时创建(例如当您调用GetCustomAttributes时)?

或者他们是在创建对象时创建的?

或者,由CLR的属性扫描创建对象时创建的前2个的组合?

Smi*_*Smi 8

从CLR到C#,第三版:

如果要构造属性对象,则必须调用GetCustomAttributesGetCustomAttribute.每次调用其中一个方法时,它都会构造指定属性类型的新实例,并根据源代码中指定的值设置每个实例的字段和属性.这些方法返回对已应用属性类的完全构造实例的引用.

所以是的,它们只是根据要求创建的.