Поделиться через


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, который является ограниченным.

Исключения

Параметр target не является ни DnsPermission, ни null.

Примеры

В следующем примере создается экземпляр разрешения, который является объединением текущего экземпляра разрешения и указанного экземпляра разрешения.

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 экземпляром. Любое требование, которое передает любое разрешение, передает их объединение.

Применяется к