হ্যাঁ, প্রতিচ্ছবি হ'ল উপায় হবে। প্রথমত, আপনি Type
তালিকার দৃষ্টান্তটির (রানটাইম সময়ে) ধরণের প্রতিনিধিত্ব করবেন। আপনি GetType
পদ্ধতিটিObject
কল করে এটি করতে পারেন । এটি Object
ক্লাসে রয়েছে বলে, এটি নেট। প্রতিটি আইটেম দ্বারা কলযোগ্য , যেমন সমস্ত ধরণের থেকে প্রাপ্ত Object
( ভাল, প্রযুক্তিগতভাবে, সমস্ত কিছু নয় , তবে এটি এখানে গুরুত্বপূর্ণ নয়)।
একবার Type
উদাহরণস্বরূপ উপস্থিত হয়ে গেলে , আপনি সেই বৈশিষ্ট্যগুলি খুঁজে পেতে GetProperties
পদ্ধতিটি কল করতে পারেন PropertyInfo
যা উপরের বৈশিষ্ট্যগুলি সম্পর্কে রান-টাইম তথ্য উপস্থাপন করে Type
।
দ্রষ্টব্য, আপনি কোন বৈশিষ্ট্য পুনরুদ্ধার করবেন তাGetProperties
শ্রেণিবদ্ধ করতে সহায়তা করতে আপনি ওভারলোডগুলি ব্যবহার করতে পারেন ।
সেখান থেকে, আপনি কেবল একটি ফাইলের জন্য তথ্য লিখবেন।
উপরে বর্ণিত আপনার কোডটি হ'ল:
// The instance, it can be of any type.
object o = <some object>;
// Get the type.
Type type = o.GetType();
// Get all public instance properties.
// Use the override if you want to classify
// which properties to return.
foreach (PropertyInfo info in type.GetProperties())
{
// Do something with the property info.
DoSomething(info);
}
নোট করুন যে আপনি যদি পদ্ধতি সম্পর্কিত তথ্য বা ক্ষেত্রের তথ্য চান তবে আপনাকে যথাক্রমে GetMethods
বা GetFields
পদ্ধতিগুলির ওভারলোডগুলির একটিতে কল করতে হবে ।
আরও মনে রাখবেন, সদস্যদের একটি ফাইলে তালিকাভুক্ত করা একটি জিনিস, তবে সম্পত্তি সেটের উপর ভিত্তি করে যুক্তি চালানোর জন্য আপনার এই তথ্য ব্যবহার করা উচিত নয় ।
ধরে নেওয়া যাক আপনি ধরনের বাস্তবায়নের নিয়ন্ত্রণ আছে, তবে আপনি একটি সাধারণ বেস ক্লাস থেকে আহরণ করা বা একটি সাধারণ ইন্টারফেস বাস্তবায়ন এবং যারা উপর কল করতে হবে (আপনি ব্যবহার করতে পারেন as
বা is
সাহায্যের অপারেটর তা নির্ধারণ বেস বর্গ / তোমার দিকে সাথে কাজ করেন, ইন্টারফেস রানটাইম)।
তবে, আপনি যদি এই ধরণের সংজ্ঞাগুলি নিয়ন্ত্রণ না করেন এবং প্যাটার্ন মিলের ভিত্তিতে লজিক চালনা করতে পারেন তবে তা ঠিক।