نمایش نتایج 1 تا 4 از 4

نام تاپیک: ایجاد کلاس در زمان اجرا

  1. #1
    کاربر دائمی آواتار mohsen_zelzela00
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    internet && .net
    پست
    755

    ایجاد کلاس در زمان اجرا

    با عرض سلام خدمت اساتید محترم.

    من می خواستم زمانی که برنامه در حال اجرا است و مثلاً روی یک دکمه کلیک کنم یک کلاس C#‎ در یک مسیر خاص برای من ایجاد شود و یک دستور هم در کلاس خودم بنویسم

    خیلی در اینترنت گشتم که چگونه یک کلاس در زمان اجرا ایجاد کنیم اما نتیجه نگرفتم ممنون میشم اساتید محترم راهنمایی کنند.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: ایجاد کلاس در زمان اجرا

    شما دوست عزیز کجا رو گشتین؟؟
    http://www.bing.com/search?q=how+to+...time&FORM=AWRE
    خصوصا لینک استک اور فلو رو مطالعه کن
    http://stackoverflow.com/questions/1...untime-c-sharp

  3. #3
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: ایجاد کلاس در زمان اجرا

     public DllCreator(double dbl1, double dbl2)
    {


    System.Reflection.AssemblyVersionAttribute ver = new System.Reflection.AssemblyVersionAttribute("1,0,0, 0");
    System.CodeDom.Compiler.CompilerParameters parameters = new System.CodeDom.Compiler.CompilerParameters();
    parameters.GenerateExecutable = false;
    parameters.OutputAssembly = "my.dll";

    System.CodeDom.Compiler.CompilerResults r = System.CodeDom.Compiler.CodeDomProvider.CreateProv ider("C#‎").CompileAssemblyFromSource(parameters, "public class myClass { public static double code1 = " + dbl1 + ";public static double code2 = " + dbl2 + ";}");

    Console.WriteLine(System.Reflection.Assembly.LoadF rom("my.dll").GetType("myClass").GetField("code1") .GetValue(null));
    Console.WriteLine(System.Reflection.Assembly.LoadF rom("my.dll").GetType("myClass").GetField("code2") .GetValue(null));
    }



    این کلاس دو ارکومان داره که میتونی هنگام ساختن dll مقداری درونش ذخیره کنید
    اگر این کلاس صدا بزنید
    DllCreator dll= new DllCreator(1,2)

    یک dll ساخته میشه بنام my.dll با دو فیلد استاتیک که دارای مقادیر 1و 2 هست


    برای اینکه ببینی آیا داده ذخیره شده یا نه تابع زیر رو صدا بزنید و در پنجره OutPut مشاهده میکنید که تابع دارای فیلدهایی با مقادیر 1و2 میباشد
    در ضمن my.dll در مسیر bin برنامه ساخته میشه
      public static void GetLicense()
    {
    // Load the assembly
    System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(AppDomain.Curr entDomain.BaseDirectory + "my.dll");

    // Get all of the types defined in the assembly
    Type[] typesInAssembly = assembly.GetTypes();

    foreach (Type type in typesInAssembly)
    {
    Console.WriteLine("Type: {0}", type);

    // This loads the public fields
    System.Reflection.FieldInfo[] fields = type.GetFields();


    foreach (var field in fields)
    {
    // Console.WriteLine(" {0}", field.Name);
    if (field.Name == "code1")
    {
    Console.WriteLine(field.GetValue(0));
    }
    if (field.Name == "code2")
    {
    Console.WriteLine(field.GetValue(1));
    }
    }


    }
    }

  4. #4
    کاربر دائمی آواتار mohsen_zelzela00
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    internet && .net
    پست
    755

    نقل قول: ایجاد کلاس در زمان اجرا

    نقل قول نوشته شده توسط ali_md110 مشاهده تاپیک
     public DllCreator(double dbl1, double dbl2)
    {


    System.Reflection.AssemblyVersionAttribute ver = new System.Reflection.AssemblyVersionAttribute("1,0,0, 0");
    System.CodeDom.Compiler.CompilerParameters parameters = new System.CodeDom.Compiler.CompilerParameters();
    parameters.GenerateExecutable = false;
    parameters.OutputAssembly = "my.dll";

    System.CodeDom.Compiler.CompilerResults r = System.CodeDom.Compiler.CodeDomProvider.CreateProv ider("C#‎").CompileAssemblyFromSource(parameters, "public class myClass { public static double code1 = " + dbl1 + ";public static double code2 = " + dbl2 + ";}");

    Console.WriteLine(System.Reflection.Assembly.LoadF rom("my.dll").GetType("myClass").GetField("code1") .GetValue(null));
    Console.WriteLine(System.Reflection.Assembly.LoadF rom("my.dll").GetType("myClass").GetField("code2") .GetValue(null));
    }



    این کلاس دو ارکومان داره که میتونی هنگام ساختن dll مقداری درونش ذخیره کنید
    اگر این کلاس صدا بزنید
    DllCreator dll= new DllCreator(1,2)

    یک dll ساخته میشه بنام my.dll با دو فیلد استاتیک که دارای مقادیر 1و 2 هست


    برای اینکه ببینی آیا داده ذخیره شده یا نه تابع زیر رو صدا بزنید و در پنجره OutPut مشاهده میکنید که تابع دارای فیلدهایی با مقادیر 1و2 میباشد
    در ضمن my.dll در مسیر bin برنامه ساخته میشه
      public static void GetLicense()
    {
    // Load the assembly
    System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(AppDomain.Curr entDomain.BaseDirectory + "my.dll");

    // Get all of the types defined in the assembly
    Type[] typesInAssembly = assembly.GetTypes();

    foreach (Type type in typesInAssembly)
    {
    Console.WriteLine("Type: {0}", type);

    // This loads the public fields
    System.Reflection.FieldInfo[] fields = type.GetFields();


    foreach (var field in fields)
    {
    // Console.WriteLine(" {0}", field.Name);
    if (field.Name == "code1")
    {
    Console.WriteLine(field.GetValue(0));
    }
    if (field.Name == "code2")
    {
    Console.WriteLine(field.GetValue(1));
    }
    }


    }
    }
    با تشکر از شما دوست عزیز، فقط یه مشکل و اونم اینه که زمانی که من این کد را اجرا می کنم یک dll برای من ایجاد می شود ، در صورتی که من می خواهم یه کلاس برای من ایجاد بشه چون دارم روی یک CodeGeneretor برای خودم کار می کنم. ممنون میشم راهنمایی کنید.

تاپیک های مشابه

  1. سوال: ایجاد و حذف اشیاء کلاس در زمان اجرا به تعداد...
    نوشته شده توسط sajad_3dmax در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 25 دی 1390, 08:56 صبح
  2. ایجاد فرم در زمان اجرا
    نوشته شده توسط FirstLine در بخش برنامه نویسی در Delphi
    پاسخ: 26
    آخرین پست: چهارشنبه 27 دی 1385, 07:16 صبح
  3. ایجاد کنترل در زمان اجرا
    نوشته شده توسط AspNet در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: چهارشنبه 03 فروردین 1384, 19:19 عصر
  4. ایجاد فرم در زمان اجرا و مشکلات
    نوشته شده توسط mostafa313 در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 08 آبان 1383, 04:30 صبح
  5. کار با کنترل های ایجاد شده در زمان اجرا
    نوشته شده توسط داش اکل در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: یک شنبه 24 اسفند 1382, 23:17 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •