次の方法で共有


DnsPermission.Union メソッド

現在のアクセス許可インスタンスと指定したアクセス許可インスタンスの和集合を表すアクセス許可インスタンスを作成します。

Overrides Public Function Union( _
   ByVal target As IPermission _) As IPermission Implements IPermission.Union
[C#]
public override IPermission Union(IPermissiontarget);
[C++]
public: IPermission* Union(IPermission* target);
[JScript]
public override function Union(
   target : IPermission) : IPermission;

パラメータ

  • target
    現在のインスタンスと組み合わせる DnsPermission インスタンス。

戻り値

現在の DnsPermission インスタンスと指定した DnsPermission インスタンスの和集合を表す DnsPermission インスタンス。 target が null 参照 (Visual Basic では Nothing) の場合、このメソッドは現在のインスタンスのコピーを返します。現在のインスタンスまたは target が無制限である場合、このメソッドは無制限の DnsPermission インスタンスを返します。それ以外の場合は、無制限でない DnsPermission インスタンスを返します。

実装

IPermission.Union

例外

例外の種類 条件
ArgumentException targetDnsPermission でも null 参照 (Visual Basic では Nothing) でもありません。

解説

Union メソッドは、現在の DnsPermission インスタンスまたは指定した DnsPermission インスタンスのいずれかによって定義されたアクセスを許可する DnsPermission インスタンスを返します。いずれかのアクセス許可を要求し、その要求が満たされた場合、両者の和集合を表すアクセス許可に対する要求も満たされます。

使用例

[Visual Basic, C#, C++] 現在のアクセス許可インスタンスと指定したアクセス許可インスタンスの和集合を表すアクセス許可インスタンスを作成する例を次に示します。

 
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 'MyUnion
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 'useDns

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 'PrintKeysAndValues

[C#] 
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();
}

[C++] 
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 = new DnsPermission(PermissionState::Unrestricted);
 dnsPermission2 = new DnsPermission(PermissionState::None);
 // Check for permission.
 dnsPermission1->Demand();
 dnsPermission2->Demand();
 Console::WriteLine(S"Attributes and Values of first DnsPermission instance :");
 PrintKeysAndValues(dnsPermission1->ToXml()->Attributes);
 Console::WriteLine(S"Attributes and Values of second DnsPermission instance :");
 PrintKeysAndValues(dnsPermission2->ToXml()->Attributes);
 Console::WriteLine(S"Union of both instances : ");
 MyUnion();
 Console::WriteLine(S"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(S"\t-KEY-\t-VALUE-");
 while (myEnumerator->MoveNext())
    Console::WriteLine(S"\t {0}:\t {1}", 
    myEnumerator->Key, myEnumerator->Value);
 Console::WriteLine();
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

DnsPermission クラス | DnsPermission メンバ | System.Net 名前空間