প্রতিফলন বস্তু রানটাইমে ধরনের তথ্য প্রাপ্ত করার জন্য ব্যবহার করা হয়. যে ক্লাসগুলি চলমান প্রোগ্রামের মেটাডেটাতে অ্যাক্সেস দেয় সেগুলি সিস্টেম। প্রতিফলন নামস্থানে রয়েছে।
নিম্নলিখিতগুলি প্রতিফলনের প্রয়োগগুলি -
৷-
এটি রানটাইমে অ্যাট্রিবিউট তথ্য দেখার অনুমতি দেয়।
-
এটি একটি সমাবেশে বিভিন্ন ধরনের পরীক্ষা করার অনুমতি দেয় এবং এই ধরনের ইনস্ট্যান্টিয়েট করে।
-
এটি পদ্ধতি এবং বৈশিষ্ট্যের সাথে দেরীতে বাঁধাই করার অনুমতি দেয়
-
এটি রানটাইমে নতুন ধরনের তৈরি করার অনুমতি দেয় এবং তারপর সেই ধরনের ব্যবহার করে কিছু কাজ সম্পাদন করে।
আসুন একটি উদাহরণ দেখি -
উদাহরণ
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(); } } }