C# 编译器解释的程序集级别属性
大多数特性应用于特定语言元素,如类或方法;但是,一些特性是全局特性 - 它们应用于整个程序集或模块。 例如,AssemblyVersionAttribute 属性可用于将版本信息嵌入程序集,如下所示:
[assembly: AssemblyVersion("1.0.0.0")]
全局特性出现在源代码中任何顶级 using
指令之后和任何类型、模块或命名空间声明之前。 全局特性可以出现在多个源文件中,但必须在单个编译过程中编译这些文件。 Visual Studio 将全局特性添加到 .NET Framework 项目中的 AssemblyInfo.cs 文件中。 这些特性不会添加到 .NET Core 项目中。
程序集特性是提供程序集相关信息的值。 它们分为以下几类:
- 程序集标识特性
- 信息性特性
- 程序集清单特性
程序集标识特性
三个特性(与强名称(如果适用))组合起来可以确定程序集的标识:名称、版本和区域性。 这些特性构成程序集的全名,在代码中引用程序集时必需使用。 可使用特性设置程序集的版本和区域性。 但是,创建程序集时,由编译器、程序集信息对话框中的 Visual Studio IDE 或程序集链接器 (Al.exe) 设置名称值。 程序集名称基于程序集清单。 AssemblyFlagsAttribute 属性指定程序集的多个副本是否可以共存。
下表显示标识特性。
特性 | 目标 |
---|---|
AssemblyVersionAttribute | 指定程序集的版本。 |
AssemblyCultureAttribute | 指定程序集支持的区域性。 |
AssemblyFlagsAttribute | 指定描述实时 (JIT) 编译器选项的程序集的标志的按位组合、该程序集是否可重定目标,以及是否具有完整或已标记化的公共密钥。 |
信息性特性
你可使用信息性特性为程序集提供更多公司或产品信息。 下表显示 System.Reflection 命名空间中定义的信息性属性。
特性 | 目标 |
---|---|
AssemblyProductAttribute | 指定程序集清单的产品名称。 |
AssemblyTrademarkAttribute | 指定程序集清单的商标。 |
AssemblyInformationalVersionAttribute | 为程序集清单指定信息性版本。 |
AssemblyCompanyAttribute | 为程序集清单指定公司名称。 |
AssemblyCopyrightAttribute | 定义为程序集清单指定版权的自定义属性。 |
AssemblyFileVersionAttribute | 设置 Win32 文件版本资源的特定版本号。 |
CLSCompliantAttribute | 指示程序集是否符合公共语言规范 (CLS)。 |
程序集清单特性
程序集清单特性可用于提供程序集清单中的信息。 特性包括标题、说明、默认别名和配置。 下表显示 System.Reflection 命名空间中定义的程序集清单属性。
特性 | 目标 |
---|---|
AssemblyTitleAttribute | 为程序集清单指定程序集标题。 |
AssemblyDescriptionAttribute | 为程序集清单指定程序集说明。 |
AssemblyConfigurationAttribute | 为程序集清单指定程序集配置(如零售或调试)。 |
AssemblyDefaultAliasAttribute | 定义程序集清单的友好默认别名 |