यह एक संकलन-समय अपवाद का कारण बनता है:
public sealed class ValidatesAttribute<T> : Attribute
{
}
[Validates<string>]
public static class StringValidation
{
}
मुझे लगता है कि C # सामान्य विशेषताओं का समर्थन नहीं करता है। हालाँकि, बहुत Googling के बाद, मुझे इसका कारण पता नहीं लग सकता है।
क्या किसी को पता है कि सामान्य प्रकार क्यों नहीं प्राप्त कर सकते हैं Attribute
? कोई सिद्धांत?
abstract class Base<T>: Attribute {}
जिसका इस्तेमाल नॉन बनाने के लिए किया जा सकता है। जेनेरिक व्युत्पन्न वर्ग इस तरह से हैं:class Concrete: Base<MyType> {}
[DependsOnProperty<Foo>(f => f.Bar)]
या [ForeignKey<Foo>(f => f.IdBar)]
...