핵심 코드
~ 그림의 코드를 확장하고 화살표를 보세요 ↓
1. 전역 속성
using System.Reflection; using System.Runtime.InteropServices; // 有关程序集的常规信息通过下列特性集 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("MusicStore")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("MusicStore")] [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 会使此程序集中的类型 // 对 COM 组件不可见。如果需要 // 从 COM 访问此程序集中的某个类型,请针对该类型将 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID [assembly: Guid("a9ef3281-9049-4a52-a2f1-2061d442200e")] // 程序集的版本信息由下列四个值组成: // // 主版本 // 次版本 // 内部版本号 // 修订版本 // // 可以指定所有值,也可以使用“修订号”和“内部版本号”的默认值, // 方法是按如下所示使用 "*": [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]
1. 어셈블리 식별 속성 세 가지 속성(해당되는 경우 강력한 이름 사용)이 어셈블리의 ID(이름, 버전 및 문화권)를 결정합니다. 코드에서 참조되는 경우 이러한 특성은 어셈블리의 전체 이름을 구성하는 데 필요합니다. 특성을 사용하면 어셈블리의 버전과 문화권을 설정할 수 있습니다. 그러나 이름 값은 어셈블리가 생성된 후 어셈블리 매니페스트가 포함된 파일에 따라 컴파일러에 의해 Visual Studio IDE의 어셈블리 정보 대화 상자에서 설정됩니다. AssemblyFlagsAttribute 특성은 어셈블리의 여러 복사본이 공존할 수 있는지 여부를 지정합니다.
그림 - "어셈블리 정보" 대화 상자 및 AssemblyInfo.cs 파일의 명사 대응
3. 어셈블리 매니페스트 기능
4. 강력한 이름 기능(자세한 내용은 아님)
/// <summary> /// 旧类 /// </summary> [Obsolete("请使用 " + nameof(NewClass))] class OldClass { public void Method() { } } /// <summary> /// 新类 /// </summary> class NewClass { [Obsolete("请使用 " + nameof(NewMethod), true)] public void OldMethod() { } public void NewMethod() { } }
class Program { static void Main(string[] args) { var oldClass = new OldClass(); //警告 var newClass = new NewClass(); newClass.OldMethod(); //报错 } }