다음을 통해 공유


DnsPermission.Union(IPermission) 메서드

정의

현재 사용 권한 인스턴스와 지정된 사용 권한 인스턴스를 통합하는 사용 권한 인스턴스를 만듭니다.

public:
 override System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public override System.Security.IPermission Union (System.Security.IPermission target);
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Union (target As IPermission) As IPermission

매개 변수

target
IPermission

현재 인스턴스와 결합할 DnsPermission 인스턴스입니다.

반환

현재 DnsPermission 인스턴스와 지정된 DnsPermission 인스턴스를 통합하는 DnsPermission 인스턴스입니다. targetnull이면, 이 메서드는 현재 인스턴스의 복사본을 반환합니다. 현재 인스턴스나 target이 무제한이면, 이 메서드는 무제한인 DnsPermission 인스턴스를 반환하고, 그렇지 않으면 제한된 DnsPermission 인스턴스를 반환합니다.

예외

targetDnsPermission 또는 null이 아닌 경우

예제

다음 예제에서는 현재 권한 인스턴스와 지정된 권한 인스턴스의 공용 구조체인 권한 인스턴스를 만듭니다.

private:
   void MyUnion()
   {
      // Create a DnsPermission instance that is the union of the current DnsPermission
      // instance and the specified DnsPermission instance.
      DnsPermission^ permission = dynamic_cast<DnsPermission^>(dnsPermission1->Union( dnsPermission2 ));
      // Print the attributes and the values of the union instance of DnsPermission.
      PrintKeysAndValues( permission->ToXml()->Attributes );
   }

public:
   void useDns()
   {
      // Create a DnsPermission instance.
      dnsPermission1 = gcnew DnsPermission( PermissionState::Unrestricted );
      dnsPermission2 = gcnew DnsPermission( PermissionState::None );
      // Check for permission.
      dnsPermission1->Demand();
      dnsPermission2->Demand();
      Console::WriteLine( "Attributes and Values of first DnsPermission instance :" );
      PrintKeysAndValues( dnsPermission1->ToXml()->Attributes );
      Console::WriteLine( "Attributes and Values of second DnsPermission instance :" );
      PrintKeysAndValues( dnsPermission2->ToXml()->Attributes );
      Console::WriteLine( "Union of both instances : " );
      MyUnion();
      Console::WriteLine( "Intersection of both instances : " );
      MyIntersection();
   }

private:
   void PrintKeysAndValues( Hashtable^ myList )
   {
      // Get the enumerator that can iterate through the hash tabble.
      IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator();
      Console::WriteLine( "\t-KEY-\t-VALUE-" );
      while ( myEnumerator->MoveNext() )
      {
         Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value );
      }
      Console::WriteLine();
   }
private void MyUnion()
{
   // Create a DnsPermission instance that is the union of the current DnsPermission
   // instance and the specified DnsPermission instance.
   DnsPermission permission = (DnsPermission)dnsPermission1.Union(dnsPermission2);
   // Print the attributes and the values of the union instance of DnsPermission.
   PrintKeysAndValues(permission.ToXml().Attributes);
}
public void useDns() {
   // Create a DnsPermission instance.
   dnsPermission1 = new DnsPermission(PermissionState.Unrestricted);
   dnsPermission2 = new DnsPermission(PermissionState.None);
   // Check for permission.
   dnsPermission1.Demand();
   dnsPermission2.Demand();
   Console.WriteLine("Attributes and Values of first DnsPermission instance :");
   PrintKeysAndValues(dnsPermission1.ToXml().Attributes);
   Console.WriteLine("Attributes and Values of second DnsPermission instance :");
   PrintKeysAndValues(dnsPermission2.ToXml().Attributes);
   Console.WriteLine("Union of both instances : ");
   MyUnion();
   Console.WriteLine("Intersection of both instances : ");
   MyIntersection();
}

private void PrintKeysAndValues(Hashtable myList) {
   // Get the enumerator that can iterate through the hash tabble.
   IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
   Console.WriteLine("\t-KEY-\t-VALUE-");
   while (myEnumerator.MoveNext())
      Console.WriteLine("\t{0}:\t{1}", myEnumerator.Key, myEnumerator.Value);
   Console.WriteLine();
}
Private Sub MyUnion()
    ' Create a DnsPermission instance which is the union of the current DnsPermission instance and the specified DnsPermission instance.
    Dim permission As DnsPermission = CType(dnsPermission1.Union(dnsPermission2), DnsPermission)
    ' Print the attributes and values of the union instance of DnsPermission.
    PrintKeysAndValues(permission.ToXml().Attributes)
End Sub
Public Sub useDns()
    ' Create a DnsPermission instance.
    dnsPermission1 = New DnsPermission(PermissionState.Unrestricted)
    dnsPermission2 = New DnsPermission(PermissionState.None)
    ' Check for permission.
    dnsPermission1.Demand()
    dnsPermission2.Demand()
    Console.WriteLine("Attributes and Values of first DnsPermission instance :")
    PrintKeysAndValues(dnsPermission1.ToXml().Attributes)
    Console.WriteLine("Attributes and Values of second DnsPermission instance :")
    PrintKeysAndValues(dnsPermission2.ToXml().Attributes)
    Console.WriteLine("Union of both instances : ")
    MyUnion()
    Console.WriteLine("Intersection of both instances : ")
    MyIntersection()
End Sub

Private Sub PrintKeysAndValues(myList As Hashtable)
    ' Get the enumerator that can iterate through the hash table.
    Dim myEnumerator As IDictionaryEnumerator = myList.GetEnumerator()
    Console.WriteLine(ControlChars.Tab + "-KEY-" + ControlChars.Tab + "-VALUE-")
    While myEnumerator.MoveNext()
        Console.WriteLine(ControlChars.Tab + "{0}:" + ControlChars.Tab + "{1}", myEnumerator.Key, myEnumerator.Value)
    End While
    Console.WriteLine()
End Sub

설명

메서드는 Union 현재 DnsPermission 인스턴스 또는 지정된 DnsPermission 인스턴스에 의해 정의된 액세스를 허용하는 인스턴스를 반환 DnsPermission 합니다. 사용 권한을 통과하는 모든 요구는 해당 공용 구조체를 통과합니다.

적용 대상