ReflectionPermissionFlag 列挙型

定義

注意事項

Code Access Security is not supported or honored by the runtime.

使用を許可する System.Reflection 名前空間および System.Reflection.Emit 名前空間を指定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

public enum class ReflectionPermissionFlag
[System.Flags]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Serializable]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum ReflectionPermissionFlag
[<System.Flags>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Serializable>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ReflectionPermissionFlag = 
Public Enum ReflectionPermissionFlag
継承
ReflectionPermissionFlag
属性

フィールド

AllFlags 7

TypeInformationMemberAccess、および ReflectionEmit が設定されています。 AllFlagsRestrictedMemberAccess は含まれません。

MemberAccess 2

許可セットに関係なく、すべてのメンバーに対する呼び出し操作が許可されます。 このフラグを設定しないと、呼び出し操作は参照できるメンバーに対してのみ許可されます。

NoFlags 0

型およびメンバーの列挙が許可されます。 呼び出し操作は参照できる型およびメンバーに対して許可されます。

ReflectionEmit 4

デバッグ記号の出力が許可されます。 .NET Framework 2.0 Service Pack 1 以降では、このフラグはコードを出力するために必要なくなりました。

RestrictedMemberAccess 8

部分的に信頼されたコードに対して、制限付きメンバー アクセスが提供されます。 部分的に信頼されたコードを使用して、非パブリックな型とメンバーにアクセスできます。ただし、部分的に信頼されたコードの許可セットに、アクセス対象の非パブリックな型とメンバーを含むアセンブリの許可セット内のすべての権限が含まれている場合に限定されます。 このフラグは、.NET Framework 2.0 SP1 の新機能です。

TypeInformation 1

このフラグは、互換性のために残されています。 型とメンバーを列挙し、そのメタデータを確認する際には、フラグは不要です。 代わりに、NoFlags を使用してください。

次の例は、列挙型を ReflectionPermissionFlag 使用して、制限されたメンバー アクセスを実行する権限を ReflectionPermission 表すクラスの新しいインスタンスを初期化する方法を示しています。 この例は、クラスに提供されるより大きな例の ReflectionPermission 一部です。

インターネット コードで RestrictedMemberAccess フラグを使用する方法を示す例については、「 チュートリアル: 部分信頼シナリオでのコードの出力」を参照してください。

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

注釈

注意事項

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS 関連の API が使われている場合、CAS の注釈は使われず、エラーが発生します。 開発者は、代わりの手段を見つけてセキュリティ タスクを実現する必要があります。

この列挙型は、クラスによってReflectionPermissionReflectionPermissionAttribute使用されます。 許可されていない ReflectionPermission 場合、リフレクションはすべての型とメンバーで許可されますが、呼び出し操作は表示される型とメンバーでのみ許可されます。 詳しくは、「リフレクションに関するセキュリティ上の考慮事項」をご覧ください。

注意事項

プライベート クラス メンバーへのアクセスを提供できるためReflectionPermission、他のフラグではなく、フラグを使用RestrictedMemberAccessしてのみインターネット コードに付与ReflectionPermissionすることをお勧めします。

フラグはRestrictedMemberAccess、.NET Framework 2.0 SP1 で導入されます。 このフラグを使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

重要

AllFlags にはフラグは RestrictedMemberAccess 含まれません。 この列挙体のすべてのフラグを含むマスクを取得するには、次のAllFlags``RestrictedMemberAccess組み合わせを使用する必要があります。

.NET Framework 2.0 SP1 以降では、ReflectionEmitデバッグ シンボルが出力されない限り、コードを出力するためにフラグは不要になります。 この機能を使用するには、アプリケーションで .NET Framework 3.5 以降をターゲットにする必要があります。

.NET Framework 2.0 以降では、TypeInformation非パブリック型とメンバーを反映するためにフラグは不要になりました。フラグは古いとマークされています。

適用対象

こちらもご覧ください