导入
反射入门
了解如何在 C# 中使用反射来在运行时检查和获取有关类型、成员和程序集的元数据。
1// 第一种方法 2Type typeInfoOnInteger = typeof(int); 3Console.WriteLine(typeInfoOnInteger); 4 5// 第二种方法 6var stringObject = "Hello World!"; 7Type typeInfoOnString = stringObject.GetType(); 8Console.WriteLine(typeInfoOnString); 9 10// 第三种方法 11Type? typeInfoOnBoolean = Type.GetType("System.Boolean"); 12Console.WriteLine(typeInfoOnBoolean);
1Type typeInfoOnString = typeof(string); 2 3Console.WriteLine($"Name: {typeInfoOnString.Name}."); 4Console.WriteLine($"Full name: {typeInfoOnString.FullName}."); 5Console.WriteLine($"Namespace: {typeInfoOnString.Namespace}."); 6Console.WriteLine($"Base type: {typeInfoOnString.BaseType}."); 7Console.WriteLine($"Is class: {typeInfoOnString.IsClass}.");
1using System.Reflection; 2 3Type typeInfoOnString = typeof(string); 4 5Assembly stringAssembly = typeInfoOnString.Assembly; 6AssemblyName stringAssemblyName = stringAssembly.GetName(); 7 8Console.WriteLine($"Assembly name: {stringAssemblyName.Name}"); 9Console.WriteLine($"Assembly version: {stringAssemblyName.Version}");
1using System.Reflection; 2 3// Program 类是由顶层语句隐式生成的 4Type typeInfoOnProgram = typeof(Program); 5 6Assembly programAssembly = typeInfoOnProgram.Assembly; 7AssemblyName programAssemblyName = programAssembly.GetName(); 8 9Console.WriteLine($"Assembly name: {programAssemblyName.Name}"); 10Console.WriteLine($"Assembly version: {programAssemblyName.Version}");