HostProtectionResource 枚举

定义

注意

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

指定若由方法或类调用,可能对宿主有害的功能的类别。

此枚举支持其成员值的按位组合。

C#
[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 HostProtectionResource
C#
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum HostProtectionResource
C#
[System.Flags]
public enum HostProtectionResource
继承
HostProtectionResource
属性

字段

名称 说明
All 511

公开所有宿主资源。

ExternalProcessMgmt 4

可以创建或销毁其他进程。

ExternalThreading 16

创建或操作除本身以外的其他线程可能对宿主有害。

MayLeakOnAbort 256

如果没有安全句柄的保护,或者没有其他方法来确保资源的释放,也许将在终止时导致资源泄漏。

None 0

不公开宿主资源。

SecurityInfrastructure 64

公开安全性基础结构。

SelfAffectingProcessMgmt 8

可以退出当前进程,终止服务器。

SelfAffectingThreading 32

以只影响用户代码的方式操作线程。

SharedState 2

公开可能在线程间共享的状态。

Synchronization 1

公开同步。

UI 128

公开用户界面。

示例

下面的代码示例演示如何将 枚举与 特性结合使用HostProtectionResourceHostProtectionAttribute。 此示例是为 类提供的更大示例的 HostProtectionAttribute 一部分。

C#
// Use the enumeration flags to indicate that this method exposes 
// shared state and self-affecting process management.
// Either of the following attribute statements can be used to set the
// resource flags.
[HostProtectionAttribute(SharedState = true, 
    SelfAffectingProcessMgmt = true)]
[HostProtectionAttribute(Resources = HostProtectionResource.SharedState |
     HostProtectionResource.SelfAffectingProcessMgmt)]
private static void Exit(string Message, int Code)
{
    // Exit the sample when an exception is thrown.
    Console.WriteLine("\nFAILED: " + Message + " " + Code.ToString());
    Environment.ExitCode = Code;
    Environment.Exit(Code);
}

注解

注意

代码访问安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中弃用。 如果使用与 CAS 相关的 API,最新版本的 .NET 不会遵循 CAS 注释,并会生成错误。 开发人员应寻求用于完成安全任务的替代方法。

此枚举由 HostProtectionAttribute 特性使用。

适用于

产品 版本 (已过时)
.NET (6, 7, 8, 9)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1 (5, 6, 7, 8, 9)