मैं वीएस 2008 का उपयोग कर रहा हूं और किसी संपत्ति पर कस्टम विशेषताओं (यदि यह संभव हो) पर आधारित संकलन समय चेतावनी/त्रुटि बनाना चाहता है।एक कस्टम संकलन समय चेतावनी उत्पन्न करना सी #
[MyAttribute (typeof(MyClass)]
कहाँ MyClass एक इंटरफ़ेस को लागू करने की है:
दो मामलों जो ब्याज मुझे वर्तमान में कर रहे हैं। वर्तमान में मैं विशेषता के निर्माता में इस पर जोर है, लेकिन इस आसान स्टैक ट्रेस की प्रकृति के कारण नीचे ट्रैक करने के लिए, नहीं है:
public MyAttribute (Type MyClassType)
{
System.Diagnostics.Debug.Assert(typeof(MyInterface).IsAssignableFrom(MyClassType),
"Editor must implement interface: " + typeof(MyInterface).Name);
}
दूसरे मामले जो मुझे दिलचस्पी जहां मैं एक है है एक विशेषता में परिभाषित प्रकार, यदि वह प्रकार एक इंटरफ़ेस लागू करता है, तो कोई अन्य विशेषता मौजूद नहीं होने पर चेतावनी प्रदर्शित की जानी चाहिए।
आईई। अगर (MyClass.Implements (SomeInterface) & &! मौजूद है (SomeAttibute)) {चेतावनी उत्पन्न}
[MyAttribute(typeof(MyClass)]
// Comment next line to generate warning
[Foo ("Bar")]
धन्यवाद!
दिलचस्प सवाल कैसे करना बताया गया है, मैं उत्सुक अगर इस तरह बात संभव है हूँ। +1 –
भी रुचि रखते हैं। –
http://stackoverflow.com/questions/154109/custom-compiler-warnings –