CodeAccessPermission.Intersect(IPermission) CodeAccessPermission.Intersect(IPermission) CodeAccessPermission.Intersect(IPermission) CodeAccessPermission.Intersect(IPermission) Method

Definizione

Quando è implementato da una classe derivata, crea e restituisce un'autorizzazione costituita dall'intersezione dell'autorizzazione corrente e dell'autorizzazione specificata.When implemented by a derived class, creates and returns a permission that is the intersection of the current permission and the specified permission.

public:
 abstract System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public abstract System.Security.IPermission Intersect (System.Security.IPermission target);
abstract member Intersect : System.Security.IPermission -> System.Security.IPermission
Public MustOverride Function Intersect (target As IPermission) As IPermission

Parametri

target
IPermission IPermission IPermission IPermission

Autorizzazione da intersecare con quella corrente.A permission to intersect with the current permission. Deve essere dello stesso tipo dell'autorizzazione corrente.It must be of the same type as the current permission.

Restituisce

Nuova autorizzazione che rappresenta l'intersezione dell'autorizzazione corrente e di quella specificata.A new permission that represents the intersection of the current permission and the specified permission. La nuova autorizzazione è null se l'intersezione è vuota.This new permission is null if the intersection is empty.

Implementazioni

Eccezioni

Il parametro target non è null e non è un'istanza della stessa classe dell'autorizzazione corrente.The target parameter is not null and is not an instance of the same class as the current permission.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato Intersect un override del metodo.The following code example shows an override of the Intersect method. Questo esempio di codice fa parte di un esempio più ampio fornito CodeAccessPermission per la classe.This code example is part of a larger example provided for the CodeAccessPermission class.

public:
   virtual IPermission^ Intersect( IPermission^ target ) override
   {
      Console::WriteLine( "************* Entering Intersect *********************" );
      if ( target == nullptr )
      {
         return nullptr;
      }

#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 is wrong type.", this->GetType()->FullName ) );
      }

      NameIdPermission^ operand = dynamic_cast<NameIdPermission^>(target);

      if ( operand->IsSubsetOf( this ) )
      {
         return operand->Copy();
      }
      else if ( this->IsSubsetOf( operand ) )
      {
         return this->Copy();
      }
      else
      {
         return nullptr;
      }
   }
        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;
        }
        Public Overrides Function Intersect(ByVal target As IPermission) As IPermission
            Console.WriteLine("************* Entering Intersect *********************")
            If target Is Nothing Then
                Return Nothing
            End If
#If (Debug) Then

            Console.WriteLine(("This is = " + CType(Me, NameIdPermission).Name))
            Console.WriteLine(("Target is " + CType(target, NameIdPermission).m_name))
#End If
            If Not VerifyType(target) Then
                Throw New ArgumentException(String.Format("Argument is wrong type.", Me.GetType().FullName))
            End If

            Dim operand As NameIdPermission = CType(target, NameIdPermission)

            If operand.IsSubsetOf(Me) Then
                Return operand.Copy()
            ElseIf Me.IsSubsetOf(operand) Then
                Return Me.Copy()
            Else
                Return Nothing
            End If
        End Function 'Intersect

Commenti

L'intersezione di due autorizzazioni è un'autorizzazione che descrive il set di operazioni descritte in comune.The intersection of two permissions is a permission that describes the set of operations they both describe in common. Solo una richiesta che supera entrambe le autorizzazioni originali passerà l'intersezione.Only a demand that passes both original permissions will pass the intersection.

Note per gli eredi

È necessario eseguire l'override di questo metodo in una classe derivata.You must override this method in a derived class.

Si applica a