কেন অ্যাট্রিবিউটস.আইএসডিফাইনড () ওভারলোডগুলি অনুপস্থিত?


165

একটি এসও প্রশ্ন দ্বারা অনুপ্রাণিত। আইসডিফাইন্ড () পদ্ধতির জন্য অ্যাট্রিবিউট শ্রেণীর বেশ কয়েকটি ওভারলোড রয়েছে । আচ্ছাদনগুলি অ্যাসেম্বলি, মডিউল, মেম্বারআইএনফো, প্যারামিটারআইএনফো-তে প্রয়োগ করা হয়। মেম্বারআইনফো ওভারলোডের মধ্যে প্রপার্টিআইএনফো, ফিল্ডইনফো, ইভেন্টআইএনফো, মেথডইনফো, কনস্ট্রাক্টর ইনফোও রয়েছে।

এটি বেশিরভাগ অ্যাট্রিবিউটট্রেজ্টসের যত্ন নেয়। একটি বড় কথা ব্যতীত: অ্যাট্রিবিউটের জন্য কোনও ওভারলোড নেই sআইএসডিফাইন্ড (প্রকার, প্রকার) যাতে আপনি পরীক্ষা করতে পারেন কোনও শ্রেণীর উপর কোনও অ্যাট্রিবিউট সংজ্ঞায়িত করা হয়েছে কিনা। অথবা এই বিষয়ে স্ট্রাক্ট, প্রতিনিধি বা এনাম।

এটি আসল সমস্যা নয়, টাইপ করুন.গেটকাস্টমঅ্যাট্রিবিউটস () এটি ঠিক করতে পারে। তবে ব্লাহআইএনফো-র সমস্ত ধরণের এটির রয়েছে। প্রতিসাম্যের অভাব নিয়ে আমি অবাক হই। কেন এটি টাইপের জন্য সমস্যা হবে তাতে আমি একটি আঙুল রাখতে পারি না। উত্তরাধিকারের সমস্যা অনুমান করা আমার কাছে এটি ব্যাখ্যা করে না। মিশ্রণে ভ্যালু টাইপ থাকা একটি সীসা হতে পারে, তবুও তা বোঝায় না। আমি "তারা ভুলে গেছে" কিনে না, তারা কখনই করে না।

কেন এই ওভারলোড অনুপস্থিত?

উত্তর:


170

একটি System.Attribute.IsDefined(MemberInfo element, Type attributeType, bool inherit)এবং System.Typeথেকে প্রাপ্ত System.Reflection.MemberInfo

যে কোনও .NET সমাবেশের শীর্ষ স্তরের ধারক একটি অ্যাসেমব্লির এক বা একাধিক মডিউল থাকে। প্রতিটি মডিউল এর পরে প্রকার এবং প্রকারগুলিতে সদস্য থাকতে পারে যেমন বৈশিষ্ট্য, পদ্ধতি বা অন্য ধরণের (নেস্টেড প্রকার)। এ কারণেই এর System.Typeউদ্ভব ঘটে MemberInfoযাতে অবজেক্ট মডেল প্রকারকে অন্যান্য জিনিস সহ সমস্ত জিনিসের সদস্য হিসাবে ধারক হিসাবে কাজ করতে দেয়।


ওভারলোড এর জন্য ICustomAttributeProviderঅনেক কিছু বোঝা যায়।
মিঃ অ্যান্ডারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.