প্রতিফলন বস্তু রানটাইমে ধরনের তথ্য প্রাপ্ত করার জন্য ব্যবহার করা হয়. যে ক্লাসগুলি চলমান প্রোগ্রামের মেটাডেটাতে অ্যাক্সেস দেয় সেগুলি সিস্টেম। প্রতিফলন নামস্থানে রয়েছে।
নিম্নলিখিতগুলি প্রতিফলনের প্রয়োগগুলি -
৷-
এটি রানটাইমে অ্যাট্রিবিউট তথ্য দেখার অনুমতি দেয়।
-
এটি একটি সমাবেশে বিভিন্ন ধরনের পরীক্ষা করার অনুমতি দেয় এবং এই ধরনের ইনস্ট্যান্টিয়েট করে।
-
এটি পদ্ধতি এবং বৈশিষ্ট্যের সাথে দেরীতে বাঁধাই করার অনুমতি দেয়
-
এটি রানটাইমে নতুন ধরনের তৈরি করার অনুমতি দেয় এবং তারপর সেই ধরনের ব্যবহার করে কিছু কাজ সম্পাদন করে।
আসুন একটি উদাহরণ দেখি -
উদাহরণ
using System;
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
public readonly string Url;
public string Topic // Topic is a named parameter {
get {
return topic;
}
set {
topic = value;
}
}
public HelpAttribute(string url) // url is a positional parameter {
this.Url = url;
}
private string topic;
}
[HelpAttribute("Information on the class MyClass")]
class MyClass {
}
namespace AttributeAppl {
class Program {
static void Main(string[] args) {
System.Reflection.MemberInfo info = typeof(MyClass);
object[] attributes = info.GetCustomAttributes(true);
for (int i = 0; i < attributes.Length; i++) {
System.Console.WriteLine(attributes[i]);
}
Console.ReadKey();
}
}
}