This topic has not yet been rated - Rate this topic

IPermission.Union Method

Creates a permission that is the union of the current permission and the specified permission.

Namespace:  System.Security
Assembly:  mscorlib (in mscorlib.dll)
IPermission Union(
	IPermission target
)

Parameters

target
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.
ExceptionCondition
ArgumentException

The target parameter is not null and is not of the same type as the current permission.

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.

The following statements are required to be true for all implementations of the Union method. X and Y represent IPermission objects that are not null.

  • X.Union(X) returns an object that has the same value as X.

  • X.Union(Y) returns an object that has the same value as the object returned by Y.Union(X).

  • X.Union(null) returns an object that has the same value as X.

The following code example demonstrates implementing the Union method. This code example is part of a larger example provided for the IPermission class.

// Return a new object that contains the union of 'this' and 'target'. 
// Note: You do not have to implement this method. If you do not, the version 
// in CodeAccessPermission does this: 
//    1. If target is not null, a NotSupportedException is thrown. 
//    2. If target is null, then Copy is called and the new object is returned. 
public override IPermission Union(IPermission target)
{
    // If 'target' is null, then return a copy of 'this'. 
    if (target == null) return Copy();

    // Both objects must be the same type.
    SoundPermission soundPerm = VerifyTypeMatch(target);

    // If 'this' or 'target' are unrestricted, return a new unrestricted permission. 
    if (m_specifiedAsUnrestricted || soundPerm.m_specifiedAsUnrestricted)
        return Clone(true, SoundPermissionState.PlayAnySound);

    // Return a new object with the calculated, unioned permission value. 
    return Clone(false, (SoundPermissionState)
        Math.Max((Int32)m_flags, (Int32)soundPerm.m_flags));
}

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, 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.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.