کاربرد دو متد CreateInstance , GetType در #C

       کلاسی به نام MyClass داریم که اینترفیس MyInterface را پیاده سازی کرده است. نام کلاس را به متد GetType می دهیم و نام کامل یعنی QualifiedName آن کلاس را دریافت می کنیم. نام کامل کلاس را یعنی QualifiedName را به متد CreateInstance می دهیم تا که instance از کلاس را برای ما برگرداند. حال می توانیم این instance  را به آن اینترفیسی که این کلاس آن را پیاده سازی کرده است Cast می کنیم و متدهایش را فراخوانی کنیم.

کاربرد این مساله برای زمانی است که ما در پروژه نمی دانیم قرار است که از چه کلاسی instance ایجاد کنیم و نام آن کلاس از طریق دیتابیس یا ... به ما اعلام می شود.

var myClassQualifiedName = Type.GetType("MyProject.MyClass");

var instance = Activator.CreateInstance(myClassQualifiedName);

var instanceInterface = instance as MyInterface;

if (instanceInterface != null)

         instanceInterface.myMethod();

نظرات 2 + ارسال نظر
نسرین یکشنبه 19 دی‌ماه سال 1389 ساعت 11:05 ق.ظ http://cloudy2010.blogsky.com

سلام..از مطالب وبلاگت استفاده کردم..تشکر
به من سر بزن
اگه دوست داشتی بهم خبر بده تا باهم تبادل لینک داشته باشیم

زلیخا دوشنبه 13 تیر‌ماه سال 1390 ساعت 05:40 ب.ظ

عالی بود فرجون

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد