CodeAccessPermission.Union Method (IPermission)
When overridden in a derived class, creates a permission that is the union of the current permission and the specified permission.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- other
-
Type:
System.Security.IPermission
A permission to combine 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 union of the current permission and the specified permission.
Implements
IPermission.Union(IPermission)| Exception | Condition |
|---|---|
| NotSupportedException | The other parameter is not null. This method is only supported at this level when passed null. |
The result of a call to Union is a permission that represents all the operations represented by both the current permission and the specified permission. Any demand that passes either permission passes their union.
Notes to Inheritors:
You must override this method in a derived class. You should return a copy of the permission if the value of the other parameter is null.
The following code example shows an override of the Union method. This code example is part of a larger example provided for the CodeAccessPermission class.
public override IPermission Union(IPermission target)
{
#if(debug)
Console.WriteLine ("************* Entering Union *********************");
#endif
if (target == null)
{
return this;
}
#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_WrongType", this.GetType ().FullName));
}
NameIdPermission operand = ( NameIdPermission)target;
if (operand.IsSubsetOf (this)) return this.Copy ();
else if (this.IsSubsetOf (operand)) return operand.Copy ();
else
return null;
}
Available since 1.1