ReflectionPermissionFlag 列挙型

定義

使用を許可する System.Reflection 名前空間および System.Reflection.Emit 名前空間を指定します。Specifies the permitted use of the System.Reflection and System.Reflection.Emit namespaces.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class ReflectionPermissionFlag
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum ReflectionPermissionFlag
type ReflectionPermissionFlag = 
Public Enum ReflectionPermissionFlag
継承
ReflectionPermissionFlag
属性

フィールド

AllFlags 7

TypeInformationMemberAccess、および ReflectionEmit が設定されています。TypeInformation , MemberAccess, and ReflectionEmit are set. AllFlagsRestrictedMemberAccess は含まれません。AllFlags does not include RestrictedMemberAccess.

MemberAccess 2

許可セットに関係なく、すべてのメンバーに対する呼び出し操作が許可されます。Invocation operations on all members are allowed, regardless of grant set. このフラグを設定しないと、呼び出し操作は参照できるメンバーに対してのみ許可されます。If this flag is not set, invocation operations are allowed only on visible members.

NoFlags 0

型およびメンバーの列挙が許可されます。Enumeration of types and members is allowed. 呼び出し操作は参照できる型およびメンバーに対して許可されます。Invocation operations are allowed on visible types and members.

ReflectionEmit 4

デバッグ記号の出力が許可されます。Emitting debug symbols is allowed. .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1 以降では、コードの出力にこのフラグを指定する必要がなくなりました。Beginning with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this flag is no longer required to emit code.

RestrictedMemberAccess 8

部分的に信頼されたコードに対して、制限付きメンバー アクセスが提供されます。Restricted member access is provided for partially trusted code. 部分的に信頼されたコードを使用して、非パブリックな型とメンバーにアクセスできます。ただし、部分的に信頼されたコードの許可セットに、アクセス対象の非パブリックな型とメンバーを含むアセンブリの許可セット内のすべての権限が含まれている場合に限定されます。Partially trusted code can access nonpublic types and members, but only if the grant set of the partially trusted code includes all permissions in the grant set of the assembly that contains the nonpublic types and members being accessed. このフラグは .NET Framework 2.0 SP1.NET Framework 2.0 SP1 で新たに追加されました。This flag is new in the .NET Framework 2.0 SP1.NET Framework 2.0 SP1.

TypeInformation 1

このフラグは、互換性のために残されています。This flag is obsolete. 型とメンバーを列挙し、そのメタデータを確認する際には、フラグは不要です。No flags are necessary to enumerate types and members and to examine their metadata. 代わりに、NoFlags を使用してください。Use NoFlags instead.

次の例は、ReflectionPermissionFlag 列挙体を使用して、制限されたメンバーアクセスを実行する権限を表す ReflectionPermission クラスの新しいインスタンスを初期化する方法を示しています。The following example shows how to use the ReflectionPermissionFlag enumeration to initialize a new instance of the ReflectionPermission class that represents the right to perform restricted member access. この例は、ReflectionPermission クラスに用意されている大規模な例の一部です。This example is part of a larger example that is provided for the ReflectionPermission class.

RestrictedMemberAccess フラグをインターネットコードと共に使用する方法の例については、チュートリアルを参照してください。部分信頼シナリオでのコードの出力For an example that shows how to use the RestrictedMemberAccess flag with Internet code, see Walkthrough: Emitting Code in Partial Trust Scenarios.

ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);
Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)

注釈

この列挙体は、ReflectionPermission クラスと ReflectionPermissionAttribute クラスによって使用されます。This enumeration is used by the ReflectionPermission and ReflectionPermissionAttribute classes. ReflectionPermission が付与されていない場合、リフレクションはすべての型とメンバーに対して許可されますが、呼び出し操作は参照できる型およびメンバーに対してのみ許可されます。If no ReflectionPermission is granted, reflection is allowed on all types and members, but invocation operations are allowed only on visible types and members. 詳しくは、「リフレクションに関するセキュリティ上の考慮事項」をご覧ください。For more information, see Security Considerations for Reflection.

注意事項

ReflectionPermission はプライベートクラスのメンバーへのアクセスを提供できるので、他のフラグではなく、RestrictedMemberAccess フラグを使用してインターネットコードに ReflectionPermission を許可することをお勧めします。Because ReflectionPermission can provide access to private class members, we recommend that you grant ReflectionPermission to Internet code only with the RestrictedMemberAccess flag, and not with any other flags.

RestrictedMemberAccess フラグは、.NET Framework 2.0 SP1.NET Framework 2.0 SP1 で導入されました。The RestrictedMemberAccess flag is introduced in the .NET Framework 2.0 SP1.NET Framework 2.0 SP1. このフラグを使用するには、アプリケーションで .NET Framework 3.5.NET Framework 3.5 以降を対象にする必要があります。To use this flag, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

重要

AllFlags には、RestrictedMemberAccess フラグは含まれません。AllFlags does not include the RestrictedMemberAccess flag. この列挙体のすべてのフラグを含むマスクを取得するには、AllFlagsRestrictedMemberAccessの組み合わせを使用する必要があります。To get a mask that includes all flags in this enumeration, you must use the combination of AllFlags with RestrictedMemberAccess.

.NET Framework 2.0 SP1.NET Framework 2.0 SP1以降では、デバッグシンボルが出力されない限り、ReflectionEmit フラグはコードを出力するために必要なくなりました。Starting with the .NET Framework 2.0 SP1.NET Framework 2.0 SP1, the ReflectionEmit flag is no longer required to emit code, unless debug symbols are emitted. この機能を使用するには、アプリケーションで .NET Framework 3.5.NET Framework 3.5 以降を対象にする必要があります。To use this feature, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

.NET Framework 2.0.NET Framework 2.0以降では、非パブリックな型とメンバーに対して TypeInformation フラグを反映する必要がなくなりました。フラグが古い形式に設定されています。Starting with the .NET Framework 2.0.NET Framework 2.0, the TypeInformation flag is no longer required to reflect on nonpublic types and members; the flag has been marked obsolete.

適用対象

こちらもご覧ください