ReflectionPermissionFlag 列挙体
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
名前空間: System.Security.Permissionsアセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ <FlagsAttribute> _ Public Enumeration ReflectionPermissionFlag
[SerializableAttribute] [ComVisibleAttribute(true)] [FlagsAttribute] public enum ReflectionPermissionFlag
[SerializableAttribute] [ComVisibleAttribute(true)] [FlagsAttribute] public enum class ReflectionPermissionFlag

メンバ名 | 説明 | |
---|---|---|
AllFlags | TypeInformation、MemberAccess、および ReflectionEmit が設定されます。 | |
MemberAccess | すべての型のメンバに対して操作を呼び出すことができます。このフラグを設定しないと、表示されている型のメンバに対してだけ操作を呼び出すことができます。 | |
NoFlags | 表示されていない型に対して、リフレクションは使用できません。 | |
ReflectionEmit | System.Reflection.Emit が使用できます。 | |
TypeInformation | 表示されていない型のメンバに対してリフレクションを使用できます。 |

この列挙体は、ReflectionPermission で使用されます。ReflectionPermission を与えないと、リフレクションは表示されているメンバに対してだけ使用できます。
![]() |
---|
ReflectionPermission を使用するとプライベートなクラス メンバやメタデータにアクセスできるため、インターネット コードには ReflectionPermission を使用しないようにしてください。 |

Imports System Imports System.Security Imports System.Security.Permissions Imports Microsoft.VisualBasic Public Class ReflectionGenerator Private myReflection As ReflectionPermissionFlag() = _ {ReflectionPermissionFlag.AllFlags, _ ReflectionPermissionFlag.MemberAccess, _ ReflectionPermissionFlag.NoFlags, _ ReflectionPermissionFlag.ReflectionEmit, _ ReflectionPermissionFlag.TypeInformation} Private reflectionIndex As Integer = 0 Public Sub New() ResetIndex() End Sub 'New Public Sub ResetIndex() reflectionIndex = 0 End Sub 'ResetIndex ' CreateReflection creates a ReflectionPermission object. Public Function CreateReflection(ByRef reflectionPerm As ReflectionPermission, ByRef reflection As ReflectionPermissionFlag) As Boolean If reflectionIndex >= myReflection.Length Then reflectionPerm = New ReflectionPermission(PermissionState.None) reflection = ReflectionPermissionFlag.NoFlags reflectionIndex &= 1 Return False End If reflection = myReflection(reflectionIndex) reflectionIndex = reflectionIndex + 1 Try reflectionPerm = New ReflectionPermission(reflection) Return True Catch e As Exception Console.WriteLine(("Cannot create ReflectionPermission: " & reflection & " " & e.ToString())) reflectionPerm = New ReflectionPermission(PermissionState.None) reflection = ReflectionPermissionFlag.NoFlags Return True End Try End Function 'CreateReflection End Class 'ReflectionGenerator ' End of ReflectionGenerator.
using System; using System.Security; using System.Security.Permissions; public class ReflectionGenerator { private ReflectionPermissionFlag[] myReflection = { ReflectionPermissionFlag.AllFlags, ReflectionPermissionFlag.MemberAccess, ReflectionPermissionFlag.NoFlags, ReflectionPermissionFlag.ReflectionEmit, ReflectionPermissionFlag.TypeInformation }; private int reflectionIndex = 0; public ReflectionGenerator() { ResetIndex(); } public void ResetIndex() { reflectionIndex = 0; } // CreateReflection creates a ReflectionPermission object. public bool CreateReflection(out ReflectionPermission reflectionPerm, out ReflectionPermissionFlag reflection) { if(reflectionIndex >= myReflection.Length) { reflectionPerm = new ReflectionPermission(PermissionState.None); reflection=ReflectionPermissionFlag.NoFlags; reflectionIndex++; return false; } reflection = myReflection[reflectionIndex++]; try { reflectionPerm = new ReflectionPermission(reflection); return true; } catch(Exception e) { Console.WriteLine("Cannot create ReflectionPermission: " + reflection +" "+e); reflectionPerm = new ReflectionPermission(PermissionState.None); reflection=ReflectionPermissionFlag.NoFlags; return true; } } } // End of ReflectionGenerator.
using namespace System; using namespace System::Security; using namespace System::Security::Permissions; using namespace System::Runtime::InteropServices; public ref class ReflectionGenerator { private: array<ReflectionPermissionFlag>^myReflection; int reflectionIndex; public: ReflectionGenerator() { array<ReflectionPermissionFlag>^ temp = {ReflectionPermissionFlag::AllFlags ,ReflectionPermissionFlag::MemberAccess,ReflectionPermissionFlag::NoFlags,ReflectionPermissionFlag::ReflectionEmit ,ReflectionPermissionFlag::TypeInformation}; myReflection = temp; ResetIndex(); } void ResetIndex() { reflectionIndex = 0; } // CreateReflection creates a ReflectionPermission Object*. bool CreateReflection( [Out]interior_ptr<ReflectionPermission^> reflectionPerm, [Out]ReflectionPermissionFlag * reflection ) { if ( reflectionIndex >= myReflection->Length ) { *reflectionPerm = gcnew ReflectionPermission( PermissionState::None ); *reflection = ReflectionPermissionFlag::NoFlags; reflectionIndex++; return false; } *reflection = myReflection[ reflectionIndex++ ]; try { *reflectionPerm = gcnew ReflectionPermission( *reflection ); return true; } catch ( Exception^ e ) { Console::WriteLine( "Cannot create ReflectionPermission: {0}{1}", *reflection, e ); *reflectionPerm = gcnew ReflectionPermission( PermissionState::None ); *reflection = ReflectionPermissionFlag::NoFlags; return true; } } }; // End of ReflectionGenerator.

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ReflectionPermissionFlag 列挙体のページへのリンク