بدست آوردن لیست تمامیه 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

اگر با نصب .Net Framework 3.5 SP1 مشکل داشتید ، از این لینک windows installer مربوط به سیستم عامل خودتون رو دانلود و نصب کنید.

مشکلتون حل میشه




برچسب های این مطلب : windows و net و #c و wpf