بدست آوردن لیست تمامیه Type ها در .Net
با سلام.
چند وقت پیش دنبال یه کدی بودم که بشه لیست تمامیه Type های .NET Framework رو باهاش در آورد.
جایی نتونستم پیدا کنم ، فقط با راهنماییه بچه های CodeProject فهمیدم که باید از Reflection استفاده کنم. چیزس که قبلا کار نکرده بودم .
بعد از یه دو سه روزی کار کردن و آشنا شدن با هاش این کد رو نوشتم که اسم تمامیه Type های .Net رو پیدا می کنه و اونا رو به syntax یه آرایه از string در C# در میاره و تو یه فایل کنار خود پروژه ذخیره می کنه .
حالا برا شما هم این کد رو می زارم
static string fileName = "types.txt"; static void Main(string[] args) { StreamWriter SW; SW = File.CreateText(fileName); SW.WriteLine("string[] mds = new string[] {"); SW.Write("\t\t\t\t\t"); DirectoryInfo directory = new DirectoryInfo(Environment.ExpandEnvironmentVariables("%SystemRoot%") + @"\assembly"); Assembly assembly; Type[] types; var DLL_Files = directory.GetFiles("*.dll", SearchOption.AllDirectories); short i = 0; int assembliesCounter = 0; int typeCounter = 0; int allAssemblies = DLL_Files.Length; int counter = 0; foreach (var file in DLL_Files) { assembliesCounter++; try { assembly = Assembly.LoadFile(file.FullName); types = assembly.GetTypes(); typeCounter = types.Length; foreach (var type in types) { i++; typeCounter--; if (i > 10) { SW.WriteLine("\"" + type.Name.Replace("\\", "") + "\"" + ", "); SW.Write("\t\t\t\t\t"); i = 0; } if (assembliesCounter >= allAssemblies && typeCounter <= 0) SW.Write("\"" + type.Name.Replace("\\", "") + "\""); else SW.Write("\"" + type.Name.Replace("\\", "") + "\"" + ", "); counter++; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } SW.WriteLine("};"); SW.Close(); Console.WriteLine("\n{0} Types Found", counter.ToString()); Console.WriteLine("Finish"); Console.ReadKey(); }
کلمات کلیدی : لیست کلاس ها ، لیست namespace ها ، list of class namespace , C# , VB , .Net Framework
برچسب های این مطلب : #c و reflection و بریده کد
Windows Installer 4.5 Redistributable
