public abstract class CodeAccessPermission : IPermission, ISecurityEncodable, IStackWalk { // Protected Constructors protected CodeAccessPermission( ); // Public Static Methods public static void RevertAll( ); public static void RevertAssert( ); public static void RevertDeny( ); public static void RevertPermitOnly( ); // Public Instance Methods public void Assert( ); // implements IStackWalk public abstract IPermission Copy( ); // implements IPermission public void Demand( ); // implements IStackWalk public void Deny( ); // implements IStackWalk public abstract void FromXml(SecurityElement elem); // implements ISecurityEncodable public abstract IPermission Intersect(IPermission target); // implements IPermission public abstract bool IsSubsetOf(IPermission target); // implements IPermission public void PermitOnly( ); // implements IStackWalk public override string ToString( ); // overrides object public abstract SecurityElement ToXml( ); // implements ISecurityEncodable public virtual IPermission Union(IPermission other); // implements IPermission }
This abstract class provides the base class from which all code-access and identity permission classes are derived. It implements the IPermission, IStackWalk, and ISecurityEncodable interfaces, but only provides concrete implementations of the IStackWalk methods (Demand( ), Assert( ), Deny( ), and PermitOnly( )), leaving implementation of the other interface methods to the derived classes. The staticRevertAll( ), RevertAssert( ), RevertDeny( ), and RevertPermitOnly( ) methods remove existing stack walk overrides of the appropriate type from the caller's stack frame.