다음을 통해 공유


ReflectionPermissionFlag 열거형

정의

주의

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

System.ReflectionSystem.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

TypeInformation, MemberAccessReflectionEmit이 설정됩니다. AllFlagsRestrictedMemberAccess를 포함하지 않습니다.

MemberAccess 2

권한 부여 설정에 관계없이 모든 멤버에 대해 호출 작업이 허용됩니다. 이 플래그를 설정하지 않으면 볼 수 있는 멤버에 대해서만 호출 작업이 허용됩니다.

NoFlags 0

형식 및 멤버에 대한 열거가 허용됩니다. 호출 작업은 볼 수 있는 형식 및 멤버에 대해 허용됩니다.

ReflectionEmit 4

디버그 기호 내보내기가 허용됩니다. .NET Framework 2.0 서비스 팩 1부터 이 플래그는 더 이상 코드를 내보내지 않아도 됩니다.

RestrictedMemberAccess 8

부분적으로 신뢰할 수 있는 코드에 대해 제한된 멤버 액세스 권한이 제공됩니다. 액세스하는 public이 아닌 형식 및 멤버를 포함하는 어셈블리에 대한 권한 부여 설정의 모든 권한이 부분적으로 신뢰할 수 있는 코드에 대한 권한 부여 설정에 포함되어 있는 경우에만 부분적으로 신뢰할 수 있는 코드에서 public이 아닌 형식 및 멤버에 액세스할 수 있습니다. 이 플래그는 .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 주석을 적용하지 않으며 CAS 관련 API를 사용하는 경우 오류를 생성합니다. 개발자는 보안 작업을 수행하는 대체 방법을 찾아야 합니다.

이 열거형은에서 사용 합니다 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 부터 플래그는 더 이상 게시되지 않은 형식 및 멤버를 반영할 필요가 없습니다. 플래그는 사용되지 않는 것으로 표시되었습니다.

적용 대상

추가 정보