CodeAccessPermission.Intersect Method (IPermission)
When implemented by a derived class, creates and returns a permission that is the intersection of the current permission and the specified permission.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- target
-
Type:
System.Security.IPermission
A permission to intersect with the current permission. It must be of the same type as the current permission.
Return Value
Type: System.Security.IPermissionA new permission that represents the intersection of the current permission and the specified permission. This new permission is null if the intersection is empty.
Implements
IPermission.Intersect(IPermission)| Exception | Condition |
|---|---|
| ArgumentException | The target parameter is not null and is not an instance of the same class as the current permission. |
The intersection of two permissions is a permission that describes the set of operations they both describe in common. Only a demand that passes both original permissions will pass the intersection.
Notes to Inheritors:
You must override this method in a derived class.
The following code example shows an override of the Intersect method. This code example is part of a larger example provided for the CodeAccessPermission class.
public override IPermission Intersect(IPermission target)
{
Console.WriteLine ("************* Entering Intersect *********************");
if (target == null)
{
return null;
}
#if(debug)
Console.WriteLine ("This is = " + (( NameIdPermission)this).Name);
Console.WriteLine ("Target is " + (( NameIdPermission)target).m_Name);
#endif
if (!VerifyType(target))
{
throw new ArgumentException (String.Format ("Argument is wrong type.", this.GetType ().FullName));
}
NameIdPermission operand = ( NameIdPermission)target;
if (operand.IsSubsetOf (this)) return operand.Copy ();
else if (this.IsSubsetOf (operand)) return this.Copy ();
else
return null;
}
Available since 1.1