Dies führt zu einer Ausnahme bei der Kompilierung:
public sealed class ValidatesAttribute<T> : Attribute
{
}
[Validates<string>]
public static class StringValidation
{
}
Mir ist klar, dass C # keine generischen Attribute unterstützt. Nach langem Googeln kann ich den Grund jedoch nicht finden.
Weiß jemand, warum generische Typen nicht abgeleitet werden können? Attribute
? Irgendwelche Theorien?
abstract class Base<T>: Attribute {}
könnte verwendet werden, um Nicht- Attribute zu erstellen. generische abgeleitete Klassen wie diese:class Concrete: Base<MyType> {}
[DependsOnProperty<Foo>(f => f.Bar)]
oder [ForeignKey<Foo>(f => f.IdBar)]
...