CodeAccessPermission.Union Method
When overridden in a derived class, creates a permission that is the union of the current permission and the specified permission.
Namespace: System.Security
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 InheritorsYou 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;
}
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.