CodeAccessPermission.Intersect(IPermission) Método
Definição
Quando implementada por uma classe derivada, cria e retorna uma permissão que é a interseção de permissão atual e da permissão especificada.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
Parâmetros
- target
- IPermission
Uma permissão para ter interseção com a permissão atual.A permission to intersect with the current permission. Ele deve ser do mesmo tipo da permissão atual.It must be of the same type as the current permission.
Retornos
Uma nova permissão que representa a interseção da permissão atual e da permissão especificada.A new permission that represents the intersection of the current permission and the specified permission. Essa nova permissão é null se a interseção estiver vazia.This new permission is null if the intersection is empty.
Implementações
Exceções
O parâmetro target não é null e não é uma instância da mesma classe que a permissão atual.The target parameter is not null and is not an instance of the same class as the current permission.
Exemplos
O exemplo de código a seguir mostra uma substituição do Intersect método.The following code example shows an override of the Intersect method. Este exemplo de código faz parte de um exemplo maior fornecido para a CodeAccessPermission 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
Comentários
A interseção de duas permissões é uma permissão que descreve o conjunto de operações que ambos descrevem em comum.The intersection of two permissions is a permission that describes the set of operations they both describe in common. Somente uma demanda que passa as duas permissões originais passará a interseção.Only a demand that passes both original permissions will pass the intersection.
Notas aos Implementadores
Você deve substituir esse método em uma classe derivada.You must override this method in a derived class.