PDA

View Full Version : سوال: فایده استفاده از Reflection چیست ؟



Xcalivorse
شنبه 13 اسفند 1390, 17:57 عصر
دوستان عزیز سلام
یه سوال برام پیش اومده. چرا زمانی که یک اسمبلی رو داریم و میتونیم از انواع تعریف شده در اون از جمله کلاس ها و ... بدون هیچ مشکلی استفاده کنیم باید از Reflection استفاده کنیم و با نام رشته ای اون نوع داده باهاش کار کنیم. کسی میتونه کاربرد این روش رو بگه ؟

shadi khanum
شنبه 13 اسفند 1390, 19:42 عصر
دوست عزیز باید نیست.اگه ندونی چه توابع یا کلاسهایی توی اسمبلی هست میتونی از eflection استفاده کنی تا نام کلاس ها و memberهای اونها رو بدست اورد.reflection بیشتر وقتی کاربرد داره که شما ندونی توی اون اسمبلی چیا داری یا مثلا اسم یه تابع یا کلاس رو بصورت رشته داری و میخوای ازش شی بسازی...
موفق باشی

barnamenevisjma
شنبه 13 اسفند 1390, 19:49 عصر
اجرای dynamic کد یکی از کاربردهاشه.
اینا رو یه نگاهی بنداز.


Dynamically executing code in .Net (http://www.west-wind.com/presentations/dynamicCode/DynamicCode.htm)


Reflection in .NET (http://www.codeproject.com/Articles/55710/Reflection-in-NET)

Reflection And late Binding (http://www.codeproject.com/Articles/9762/Reflection)


موفق باشی.

Xcalivorse
شنبه 13 اسفند 1390, 19:57 عصر
ضمن تشکر فراوان. ولی من میدونستم اگر یک اسمبلی رو داشته باشیم و از محتوای اون آگاهی نداشته باشیم میتونیم با Reflection از انواع تعریف شده موجود در اون اسمبلی در برنامه استفاده کنیم. اما مساله اینه که در توسعه یک نرم افزار این کار، کار جالبی نیست. اولا اگر اون اسمبلی به وسیله دات نت نوشته شده باشه و Encrypt نشده باشه ما میتونیم با جاگذاریش تو Refrence های پروژه به راحتی ازش استفاده کنیم. اگر هم در یک فایل exe جاگذاری شده باشه استفاده ازش تو پروژه کار جالبی نیست. توی توسعه نرم افزار اصولا کد رو جوری مینویسن که خطایابی، درک و توسعه اش به راحتی امکان پذیر باشه. من وقتی با رفلکشن کار میکنم با یک چیزش مشکل دارم و اون عدم قطعیت در کد نویسیشه. آیا سناریویی هست که Reflection تنها راه برای حل مشکل باشه ؟

barnamenevisjma
شنبه 13 اسفند 1390, 22:50 عصر
نظرتون در مورد برنامه ای که بتونه پلاگین قبول کنه، چیه؟ مثلا پلاگین هایی بصورت dll؟ چطور از معتبر بودن dllی که کاربر به برنامه میده، اطمینان حاصل می کنید؟

Xcalivorse
یک شنبه 14 اسفند 1390, 20:22 عصر
نظرتون در مورد برنامه ای که بتونه پلاگین قبول کنه، چیه؟ مثلا پلاگین هایی بصورت dll؟ چطور از معتبر بودن dllی که کاربر به برنامه میده، اطمینان حاصل می کنید؟

دوست عزیز این شد یک مثال خوب. مطلبی در مورد پیاده سازیش دارین ؟

shadi khanum
یک شنبه 14 اسفند 1390, 20:47 عصر
یکی از جاهایی که reflection تنها راه حلشه و به نظرم جالب ترین مثال برای استفاده از Reflection همین Intelisence خود محیط VS که واقعا محشره..
موفق باشید

barnamenevisjma
دوشنبه 15 اسفند 1390, 19:28 عصر
اینم مطلب (http://www.c-sharpcorner.com/UploadFile/rmcochran/plug_in_architecture09092007111353AM/plug_in_architecture.aspx)!
امیدوارم براتون مفید باشه.