Ale*_*der 3 c# reflection methods attributes
我需要在一个类中组织一些简单的安全性取决于枚举的值.我能想到的只是在方法上使用属性然后运行检查然后如果失败则抛出异常.样品:
[ModulePermission(PermissonFlags.Create)]
public void CreateNew()
{
CheckPermission();
System.Windows.Forms.MessageBox.Show("Created!");
}
protected void CheckPermission()
{
var method = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod();
if (!flags.HasFlag(method.GetCustomAttributes(true).Cast<ModulePermissionAttribute>().First().Flags))
{
throw new ApplicationException("Access denied");
}
}
Run Code Online (Sandbox Code Playgroud)
是否有更优雅或简单的方法来执行此操作,就像在方法运行时触发事件一样?