Share via


CodeAccessPermission.Union(IPermission) Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli iznin ve belirtilen iznin birleşimi olan bir izin oluşturur.

public:
 virtual System::Security::IPermission ^ Union(System::Security::IPermission ^ other);
public virtual System.Security.IPermission Union (System.Security.IPermission other);
abstract member Union : System.Security.IPermission -> System.Security.IPermission
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overridable Function Union (other As IPermission) As IPermission

Parametreler

other
IPermission

Geçerli izinle birleştirme izni. Geçerli izinle aynı türde olmalıdır.

Döndürülenler

Geçerli iznin ve belirtilen iznin birleşimini temsil eden yeni bir izin.

Uygulamalar

Özel durumlar

other parametresi değildirnull. Bu yöntem yalnızca geçirildiğinde nullbu düzeyde desteklenir.

Örnekler

Aşağıdaki kod örneği, yönteminin geçersiz kılmasını Union gösterir. Bu kod örneği, sınıfı için CodeAccessPermission sağlanan daha büyük bir örneğin parçasıdır.

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;
      }
   }
        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;
        }
        Public Overrides Function Union(ByVal target As IPermission) As IPermission
#If (Debug) Then

            Console.WriteLine("************* Entering Union *********************")
#End If
            If target Is Nothing Then
                Return Me
            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_WrongType", Me.GetType().FullName))
            End If

            Dim operand As NameIdPermission = CType(target, NameIdPermission)

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

Açıklamalar

çağrısının Union sonucu, hem geçerli izin hem de belirtilen izin tarafından temsil edilen tüm işlemleri temsil eden bir izindir. her iki izni de geçen tüm talepler birleşimlerini geçirir.

Devralanlara Notlar

Türetilmiş bir sınıfta bu yöntemi geçersiz kılmanız gerekir. parametresinin nulldeğeri ise iznin other bir kopyasını döndürmelisiniz.

Şunlara uygulanır