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::IPermission^A 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: virtual IPermission^ Union( IPermission^ target ) override { #if ( debug ) Console::WriteLine( "************* Entering Union *********************" ); #endif if ( target == nullptr ) { return this; } #if ( debug ) Console::WriteLine( "This is = {0}", ((NameIdPermission)this).Name ); Console::WriteLine( "Target is {0}", ((NameIdPermission)target).m_Name ); #endif if ( !VerifyType( target ) ) { throw gcnew ArgumentException( String::Format( "Argument_WrongType", this->GetType()->FullName ) ); } NameIdPermission^ operand = dynamic_cast<NameIdPermission^>(target); if ( operand->IsSubsetOf( this ) ) { return this->Copy(); } else if ( this->IsSubsetOf( operand ) ) { return operand->Copy(); } else { return nullptr; } }
Available since 1.1