ReflectionPermissionFlag 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
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
- 继承
- 属性
字段
AllFlags | 7 | 对 |
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 标志与 Internet 代码配合使用的示例,请参阅 演练:在部分信任方案中发出代码。
ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);
Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)
注解
注意
代码访问安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中弃用。 使用与 CAS 相关的 API 时,最新版本的 .NET 不遵循 CAS 注释并生成错误。 开发人员应寻求实现安全任务的替代方法。
此枚举由 ReflectionPermission 类 ReflectionPermissionAttribute 使用。 ReflectionPermission如果未授予反射,则允许对所有类型和成员进行反射,但仅允许对可见类型和成员执行调用操作。 有关详细信息,请参阅反射的安全注意事项。
注意
由于ReflectionPermission可以提供对专用类成员的访问权限,因此建议仅使用RestrictedMemberAccess
标志授予 Internet 代码,而不授予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
来反映非公共类型和成员;标志已标记为已过时。