C# 什么时候评估方法属性?

C# 什么时候评估方法属性?,c#,.net,attributes,clr,C#,.net,Attributes,Clr,什么时候将对CustomMethodAttribute进行求值,并且在进行此求值时,您可以做任何更改吗?另外,请详细解释编译器是如何管理此技巧的 何时对CustomMethodAttribute进行求值?在进行此求值时,您是否可以做任何更改 一般来说,没有进行评估。自定义属性作为元数据添加到方法中,并可根据需要在运行时通过反射进行检查 有关详细信息,请参见。那么,如何使用属性来完成类似于PrincipalPermissionAttribute的任务?@elucid8在这种情况下,Principa

什么时候将对
CustomMethodAttribute
进行求值,并且在进行此求值时,您可以做任何更改吗?另外,请详细解释编译器是如何管理此技巧的

何时对CustomMethodAttribute进行求值?在进行此求值时,您是否可以做任何更改

一般来说,没有进行评估。自定义属性作为元数据添加到方法中,并可根据需要在运行时通过反射进行检查


有关详细信息,请参见。

那么,如何使用属性来完成类似于PrincipalPermissionAttribute的任务?@elucid8在这种情况下,
PrincipalPermission
类在运行时检查元数据(该属性)。请参阅:
PrinciplePermission
类如何拦截方法调用,以防止基于
PrinciplePermission属性的存在访问方法体?这是CLR中内置的功能,还是我可以使用自定义属性执行类似的操作?一般来说,属性只是数据的容器。其他东西通常会检测属性的存在并相应地采取行动。在
PrinciplePermission
的情况下,它是CLR中的某些内容。
[CustomMethodAttribute]
public void MyMethod(string[] args)
{
    // Some implementation
}