PDA

View Full Version : چگونه می توانم یک فایل dll.* را در زمان Runtime ...



alimahdavi675
سه شنبه 25 خرداد 1389, 12:54 عصر
سلام دوست عزیزم
من توی پروژه ای که در حال حاضر دارم روی اون کار می کنم به یه مشکلی برخورد کردم خوشحال می شم کمکم کنید:
بعداز اینکه یه windows control library ایجاد کردم می خوام در زمان runTime بتونم اون رو به داخل پروژه ی خودم import کنم و از طریق یه فرمی که تو پروژه ایجادش کردم لودش کنم می دونم فرمت این فایل به صورت dll هست و داخل کد کاملا می تونم لودش کنم ولی در زمان "اجرا" یعنی وقتی برنامه در حال Run هست نمی دونم چی جوری می شه ازش استفاده کرد.:اشتباه:

حامد مصافی
سه شنبه 25 خرداد 1389, 13:07 عصر
با استفاده از متد Assembly.LoadFile مي توانيد يك فايل dll را لود كرده و در يك متغير از نوع Assembly جايگذاري كنيد. سپس از طريق متد GetTypes اين شي مي توانيد به انواع موجود در اين dll دسترسي داشته باشيد.
اين نمونه اي از كدي است كه من براي لود كردن كلاس هايي كه از PluginBase مشتق شده اند در برنامه ام نوشته ام:



public static List<PluginBase> LoadPlugin(string FileName)
{
List<PluginBase> ret = new List<PluginBase>();
Assembly ass = Assembly.LoadFile(FileName);

foreach (Type t in ass.GetTypes())
if (t.IsPublic)
if (t.BaseType == typeof(PluginBase))
ret.Add((PluginBase)Activator.CreateInstance(t));

return ret;
}