מדריך NET. – שימוש ב- Metadata ו- Reflection

‏ • John Bryce

טכנולוגיות רבות ב- NET. כגון, Serialization, .NET remoting, XML web services, WCF וכו’ דורשות את היכולת לגלות את הפורמט של ה- Types בזמן ריצה (סוגים – Types – יכולים להיות: class, interface, struct, enum, delegate). ניתן לעשות זאת באמצעות metadata.

המחלקה Type

מחלקה זו הינה מחלקה מיוחדת ותפקידה לייצג את הפרטים (metadata) של טיפוס כלשהו. מחלקה זו מכילה כמאפיינים (ופונקציות) את כל הפרטים שאפשר לספר על טיפוס כגון:

  • שם הטיפוס
  • ה- Namespace בו הטיפוס נמצא
  • האם הוא public
  • איזה פונקציות יש לו
  • ועוד

קיימות 2 דרכים עיקריות ליצירת אובייקט מהמחלקה Type:

  • שימוש בפונקציה GetType של האובייקט – שיטה זו משמשת כאשר יש אובייקט ונרצה לדעת את הסוג שלו
  • שימוש באופרטור typeof – שיטה זו משמשת כאשר לא נרצה ליצור אובייקט

להלן דוגמא ל- 2 השיטות ולכמה מהמאפיינים של המחלקה Type:

//int x = 5;
//Type t = x.GetType();

Type t = typeof(int);

Console.WriteLine("Name: {0}", t.Name);
Console.WriteLine("IsClass: {0}", t.IsClass);
Console.WriteLine("IsAbstract: {0}", t.IsAbstract);
Console.WriteLine("IsSealed: {0}", t.IsSealed);
Console.WriteLine("IsArray: {0}", t.IsArray);
Console.WriteLine("IsPublic: {0}", t.IsPublic);
Console.WriteLine("IsValueType: {0}", t.IsValueType);
Console.WriteLine("Namespace: {0}", t.Namespace);

Console.WriteLine("\nMethods:");
foreach (System.Reflection.MethodInfo item in t.GetMethods())
{
  Console.WriteLine(item);
}

פלט התוכנית:

פלט - Type

תגיות: , , ,

ליאור זמיר

כיום אני ה- Webmaster של תוכנית החדשנות של HPE Software.לפני כן, הייתי מנהל תחום Webmaster ומרצה בכיר בג'ון-ברייס (במשך 9 שנים) בקורסים לפיתוח ותיכנות באמצעות Microsoft .NET, מולטימדיה, בניית אתרי אינטרנט ואינטראנט. פיתוח הדרכה ומתן ייעוץ טכנולוגי.

תגובות בפייסבוק

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!