我意识到您无法在属性本身中获取目标实体,但在使用CodeAccessSecurityAttribute时关联的Permission对象又如何? Permission对象在运行时被调用,所以看起来应该有一种方法,但我很茫然。检索CodeAccessSecurityAttribute中的目标元素
public sealed class MySecurityAttribute : CodeAccessSecurityAttribute
{
public override IPermission CreatePermission()
{
MySecurityPermission permission = new MySecurityPermission();
//set its properties
permission.Name = this.Name;
permission.Unrestricted = this.Unrestricted;
return permission;
}
}
public class MySecurityPermission : IPermission, IUnrestrictedPermission
{
public MySecurityPermission(PermissionState state)
{
// what method was the attribute decorating that
// created this MySecurityPermission?
}
public void Demand()
{
// Or here?
}
}
是的,这是唯一的解决方案,我可以拿出来,但反射并不是一个项目的大小和频率它需要发生的选项。感谢您的反馈。 – Mike 2008-12-10 16:07:06