【C#反射】Assembly
阿新 • • 發佈:2021-11-01
Assembly屬性的應用
//獲取當前執行程式碼的程式集 Assembly assem = Assembly.GetExecutingAssembly(); Console.WriteLine($"程式集全名:{assem.FullName}" ); Console.WriteLine($"程式集的版本:{assem.GetName().Version}" ); Console.WriteLine($"程式集位置:{assem.Location}" ); Console.WriteLine($程式設計是個人愛好"程式集入口:{assem.EntryPoint}"); Console.WriteLine($"獲取用於載入程式集的主機上下文:{assem.HostContext}"); Console.WriteLine($"是否保留在可回收的 AssemblyLoadContext 中:{assem.IsCollectible}"); Console.WriteLine($"CLR 版本的資料夾名:{assem.ImageRuntimeVersion}"); Console.WriteLine($"當前程式集是否在當前程序中動態生成的:{assem.IsDynamic}"); Console.WriteLine($"當前程式集是否以完全信任方式載入:{assem.IsFullyTrusted}"); Console.WriteLine($"當前程式集清單的模組:{assem.ManifestModule}"); Console.WriteLine($"獲取包含此程式集中模組的集合:{assem.Modules}"); Console.WriteLine($"程式集被載入到只反射上下文而不是執行上下文中:{assem.ReflectionOnly}"); Console.WriteLine($"CLR 對此程式集強制執行的安全規則集:{assem.SecurityRuleSet}"); Type[] types = assem.GetTypes(); Console.WriteLine("程式集下包含的型別:"); foreach (var item in types) { Console.WriteLine($"類:{item.Name}"); } //輸出結果: //程式集全名:ConsoleApp3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null //程式集的版本:1.0.0.0 //程式集位置:C:\Users\HP\source\repos\ConsoleApp3\bin\Debug\net5.0\ConsoleApp3.dll //程式集入口:Void Main(System.String[]) //獲取用於載入程式集的主機上下文:0 //是否保留在可回收的 AssemblyLoadContext 中:False //CLR 版本的資料夾名:v4.0.30319 //當前程式集是否在當前程序中動態生成的:False //當前程式集是否以完全信任方式載入:True //當前程式集清單的模組:ConsoleApp3.dll //獲取包含此程式集中模組的集合:System.Reflection.RuntimeModule[] //程式集被載入到只反射上下文而不是執行上下文中:False //CLR 對此程式集強制執行的安全規則集:None //程式集下包含的型別: //類:Program //類:Person //類:Employee