डिफ़ॉल्ट रूप से करने के लिए इस संपत्ति जोड़ने बनाने, Attribute
रों एक भी क्षेत्र/संपत्ति/आदि के लिए केवल एक बार लागू किया जा रहा करने के लिए सीमित कर रहे हैं। आप definition of the Attribute
class on MSDN से देख सकते हैं:
[AttributeUsageAttribute(..., AllowMultiple = false)]
public abstract class Attribute : _Attribute
इसलिए, के रूप में दूसरों का उल्लेख किया है, सभी उपवर्गों उसी तरह से सीमित हैं, और आप एक ही विशेषता के कई उदाहरण की आवश्यकता होती है चाहिए, आप की जरूरत स्पष्ट रूप से true
को AllowMultiple
स्थापित करने के लिए :
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
विशेषताओं कि कई उपयोगों के लिए अनुमति देते हैं पर, you should also override the TypeId
property सुनिश्चित करना है कि गुण की उम्मीद के रूप में ऐसी PropertyDescriptor.Attributes
काम के रूप में। यह करने के लिए सबसे आसान तरीका है कि संपत्ति विशेषता उदाहरण ही वापस जाने के लिए लागू करने के लिए है:
[AttributeUsage(..., AllowMultiple = true)]
public class MyCustomAttribute : Attribute
{
public override object TypeId
{
get
{
return this;
}
}
}
(इस उत्तर पोस्ट कर रहा है दूसरों गलत हैं, लेकिन क्योंकि यह एक अधिक व्यापक/विहित जवाब है क्योंकि नहीं।)
स्रोत
2017-03-03 09:37:34
बस उत्सुक - क्यों एक "मुहरबंद" वर्ग? –
माइक्रोसॉफ्ट जब भी संभव हो सीलिंग विशेषता वर्गों की सिफारिश करता है: http://msdn.microsoft.com/en-us/library/2ab31zeh.aspx –
क्यों मुहरबंद? संक्षेप में: गुण लुकअप को तेज़ी से बनाता है और इसका कोई अन्य प्रभाव नहीं पड़ता है। –