핵심 코드
~ 그림의 코드를 확장하고 화살표를 보세요 ↓
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 파일의 명사 대응
2. 정보 속성 정보 속성을 사용하여 어셈블리에 대한 다른 회사 또는 제품 정보를 제공할 수 있습니다.3. 어셈블리 매니페스트 기능
어셈블리 매니페스트 기능을 사용하면 어셈블리 매니페스트에 정보를 제공할 수 있습니다. 여기에는 제목, 설명, 기본 별칭 및 구성이 포함됩니다.4. 강력한 이름 기능(자세한 내용은 아님)
일반적으로 이전 버전의 Visual Studio에 존재하는 강력한 이름의 어셈블리를 실행합니다. 다음 어셈블리 수준 특성: 1AssemblyKeyFileAttribute 2AssemblyKeyNameAttribute 3AssemblyDelaySignAttribute 이는 여전히 지원되지만 어셈블리에 서명하는 기본 방법은 "서명 페이지". (여기서는 심층적인 이해가 없습니다.) 2. Obsolete 기능 Obsolete 속성은 프로그램 엔터티가 더 이상 사용이 권장되지 않는 엔터티로 표시되었음을 나타냅니다. 더 이상 사용되지 않는 것으로 표시된 엔터티를 사용할 때마다 구성 속성에 따라 경고 또는 오류가 생성됩니다./// <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(); //报错 } }