2014-01-08 62 views
1
[CustomMethodAttribute] 
public void MyMethod(string[] args) 
{ 
    // Some implementation 
} 

CustomMethodAttribute何时将被评估,并且您可以在进行此评估时做任何更改?另外,请仔细解释编译器如何管理这个技巧?何时评估方法属性?

回答

3

什么时候将CustomMethodAttribute进行评估,并且您可以在进行此评估时做任何更改?

通常,没有评估发生。自定义属性将作为元数据添加到该方法中,并且可根据需要在运行时通过反射进行检查。

有关详情,请参阅Attributes on MSDN

+0

那么,如何去使用属性来完成类似于PrincipalPermissionAttribute的东西呢? – elucid8

+1

@ elucid8在这种情况下,'PrinciplePermission'类在运行时检查元数据(该属性)。请参阅:http://msdn.microsoft.com/en-us/library/system.security.permissions.principalpermission(v=vs.110).aspx –

+0

那么,'PrinciplePermission'类如何拦截方法调用以防止基于'PrinciplePermissionAttribute'的存在来访问方法体?该功能是否内置在CLR中,或者我可以使用自定义属性来做类似于此的功能吗? – elucid8