ReflectionPermission.Union メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As ReflectionPermission Dim other As IPermission Dim returnValue As IPermission returnValue = instance.Union(other)
戻り値
現在のアクセス許可と指定したアクセス許可の和集合を表す新しいアクセス許可。


Union を呼び出すと、現在のアクセス許可と指定したアクセス許可の両方が表す操作をすべて表すアクセス許可が作成されます。いずれかのアクセス許可を要求し、その要求が満たされた場合、両者の和集合を表すアクセス許可に対する要求も満たされます。

Private Function UnionDemo() As Boolean Dim returnValue As Boolean = True Dim reflection1, reflection2 As ReflectionPermissionFlag Dim reflectionPerm1, reflectionPerm2 As ReflectionPermission Dim reflectionPerm3 As IPermission Dim reflectionGen1 As New ReflectionGenerator() Dim reflectionGen2 As New ReflectionGenerator() reflectionGen1.ResetIndex() While reflectionGen1.CreateReflection(reflection1) reflectionPerm1 = New ReflectionPermission(reflection1) Console.WriteLine("**********************************************************" & ControlChars.Lf) reflectionGen2.ResetIndex() While reflectionGen2.CreateReflection(reflection2) reflectionPerm2 = New ReflectionPermission(reflection2) reflectionPerm3 = CType(reflectionPerm1.Union(reflectionPerm2), ReflectionPermission) reflectionPerm3 = reflectionPerm1.Union(reflectionPerm2) If reflectionPerm3 Is Nothing Then Console.WriteLine(("The union of " & reflection1.ToString() & " and " _ & reflection2.ToString() & " is null.")) Else Console.WriteLine(("The union of " & reflectionPerm1.Flags.ToString() & " and " _ & reflectionPerm2.Flags.ToString() & " = " _ & CType(reflectionPerm3, ReflectionPermission).Flags.ToString())) End If ContinueWhile2: End While ContinueWhile1: End While Return returnValue End Function 'UnionDemo
private bool UnionDemo() { bool returnValue = true; ReflectionPermissionFlag reflection1, reflection2; ReflectionPermission reflectionPerm1, reflectionPerm2; IPermission reflectionPerm3; ReflectionGenerator reflectionGen1 = new ReflectionGenerator(); ReflectionGenerator reflectionGen2 = new ReflectionGenerator(); reflectionGen1.ResetIndex(); while (reflectionGen1.CreateReflection(out reflection1)) { reflectionPerm1 = new ReflectionPermission(reflection1); Console.WriteLine("**********************************************************\n"); reflectionGen2.ResetIndex(); while (reflectionGen2.CreateReflection(out reflection2)) { reflectionPerm2 = new ReflectionPermission(reflection2); reflectionPerm3 = (ReflectionPermission)reflectionPerm1.Union(reflectionPerm2); reflectionPerm3 = reflectionPerm1.Union(reflectionPerm2); if (reflectionPerm3 == null) { Console.WriteLine("The union of " + reflection1 + " and " + reflection2 + " is null."); } else { Console.WriteLine("The union of " + reflectionPerm1.Flags + " and " + reflectionPerm2.Flags + " = " + ((ReflectionPermission)reflectionPerm3).Flags.ToString()); } } } return returnValue; }
bool UnionDemo() { bool returnValue = true; ReflectionPermissionFlag reflection1; ReflectionPermissionFlag reflection2; ReflectionPermission^ reflectionPerm1; ReflectionPermission^ reflectionPerm2; IPermission^ reflectionPerm3; ReflectionGenerator^ reflectionGen1 = gcnew ReflectionGenerator; ReflectionGenerator^ reflectionGen2 = gcnew ReflectionGenerator; reflectionGen1->ResetIndex(); while ( reflectionGen1->CreateReflection( &reflection1 ) ) { reflectionPerm1 = gcnew ReflectionPermission( reflection1 ); Console::WriteLine( "**********************************************************\n" ); reflectionGen2->ResetIndex(); while ( reflectionGen2->CreateReflection( &reflection2 ) ) { reflectionPerm2 = gcnew ReflectionPermission( reflection2 ); reflectionPerm3 = dynamic_cast<ReflectionPermission^>(reflectionPerm1->Union( reflectionPerm2 )); reflectionPerm3 = reflectionPerm1->Union( reflectionPerm2 ); if ( reflectionPerm3 == nullptr ) { Console::WriteLine( "The union of {0} and {1} is null.", reflection1, reflection2 ); } else { Console::WriteLine( "The union of {0} and {1} = {2}", reflectionPerm1->Flags, reflectionPerm2->Flags, (dynamic_cast<ReflectionPermission^>(reflectionPerm3))->Flags ); } } } return returnValue; }
private boolean UnionDemo() { boolean returnValue = true; ReflectionPermissionFlag reflection1[] = new ReflectionPermissionFlag[1]; ReflectionPermissionFlag reflection2[] = new ReflectionPermissionFlag[1]; ReflectionPermission reflectionPerm1[] = new ReflectionPermission[1]; ReflectionPermission reflectionPerm2[] = new ReflectionPermission[1]; IPermission reflectionPerm3; ReflectionGenerator reflectionGen1 = new ReflectionGenerator(); ReflectionGenerator reflectionGen2 = new ReflectionGenerator(); reflectionGen1.ResetIndex(); while(reflectionGen1.CreateReflection(reflectionPerm1, reflection1)) { if (reflectionPerm1[0] == null) { continue ; } Console.WriteLine("*******************************************" + "***************\n"); reflectionGen2.ResetIndex(); while(reflectionGen2.CreateReflection(reflectionPerm2, reflection2)) { if (reflectionPerm2[0] == null) { continue ; } reflectionPerm3 =((ReflectionPermission)( reflectionPerm1[0].Union(reflectionPerm2[0]))); reflectionPerm3 = reflectionPerm1[0].Union(reflectionPerm2[0]); if (reflectionPerm3 == null) { Console.WriteLine(("The union of " + reflection1[0] + " and " + reflection2[0] + " is null.")); } else { Console.WriteLine(("The union of " + reflectionPerm1[0].get_Flags() + " and " + reflectionPerm2[0].get_Flags() + " = " + ((ReflectionPermission)(reflectionPerm3)). get_Flags().ToString())); } } } return returnValue ; } //UnionDemo

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ReflectionPermission.Union メソッドのページへのリンク