मैंने एक ऐसा गुण बनाया है जो इसके कन्स्ट्रक्टर में एक (पैरा) सरणी स्वीकार करता है।सीएलएस अनुपालन विशेषताओं और सरणी पैरामीटर
internal class MyTestAttribute : Attribute
{
public MyTestAttribute (params Options[] options)
{
....
}
}
Option
यहाँ एक enum (मूल्यों के बहुत सारे के साथ), तो एक नमूना कॉल साइट हो जाएगा
[MyTest(Option.One, Option.Three)]
internal void SomeMethod(int param1, long param2)
{
....
}
सब कुछ अब तक विलक्षण है, है और सेटअप में काम करता है, लेकिन मैं एक प्राप्त कर रहा हूँ "विशेषता तर्क के रूप में Arrays सीएलएस-अनुरूप" प्रत्येक कॉल-साइट पर चेतावनी नहीं है। अब, मुझे यह मानना है कि मुझे इस असेंबली को अन्य लोगों से कहीं भी उपयोग करने की आवश्यकता नहीं है, न ही मैं चेतावनियों के रूप में चेतावनी करता हूं, लेकिन सैकड़ों चेतावनियां परेशान हो रही हैं।
स्पष्ट समाधान सीएलएस-अनुपालन को बंद करना है, लेकिन फिलहाल मैं ऐसा नहीं कर सकता।
क्या विशेषता के निर्माण के लिए कोई और दृष्टिकोण है जो अभी भी वही काम करेगा, लेकिन चेतावनियों से छुटकारा पाएं?
Arg, मुझे हराया! लेकिन सीएलएस एक आंतरिक विशेषता वर्ग पर क्यों शिकायत कर रहा है? – leppie
हां, 'विकल्प' एक enum है, और कॉल साइट अधिकतर तीन या चार विकल्पों में उपयोग करेगी, इसलिए यह एक अच्छा समाधान है। टीएनएक्स, मुझे लगा कि मैं कुछ स्पष्ट दिख रहा था :) – SWeko
@leppie, यह विशेषता की परिभाषा पर शिकायत नहीं कर रहा है (यह सार्वजनिक है अगर यह सार्वजनिक है), यह सार्वजनिक कॉल साइटों पर शिकायत कर रहा है। – SWeko