ডিফল্টরূপে Attribute
কেবলমাত্র একবারে একক ক্ষেত্র / সম্পত্তি / ইত্যাদিতে সীমাবদ্ধ। আপনি এমএসডিএন-তে ক্লাসের সংজ্ঞাAttribute
থেকে এটি দেখতে পারেন :
[AttributeUsageAttribute(..., AllowMultiple = false)]
public abstract class Attribute : _Attribute
অতএব, অন্যরা যেমন উল্লেখ করেছে, সমস্ত উপশ্রেণী একই পদ্ধতিতে সীমাবদ্ধ এবং আপনার যদি একই বৈশিষ্ট্যের একাধিক উদাহরণের প্রয়োজন হয় তবে আপনার স্পষ্টভাবে সেট AllowMultiple
করতে হবে true
:
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
একাধিক ব্যবহারের অনুমতি দেয় এমন বৈশিষ্ট্যগুলিতে, প্রত্যাশার মতো কাজের মতো বৈশিষ্ট্যগুলি নিশ্চিত করতে আপনার TypeId
সম্পত্তিটি ওভাররাইড করা উচিতPropertyDescriptor.Attributes
। এটি করার সহজতম উপায় হ'ল বৈশিষ্ট্যটিকে নিজের করে দেওয়ার জন্য সেই সম্পত্তিটি বাস্তবায়ন করা:
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
{
public override object TypeId
{
get
{
return this;
}
}
}
(এই উত্তরটি পোস্ট করা অন্যটি ভুল হওয়ার কারণে নয়, কারণ এটি আরও বিস্তৃত / প্রচলিত উত্তর)