[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public abstract class AttBase : Attribute
{
public static string Apply(object obj);
}
public class FooAttribute : AttBase {}
public class BarAttribute : AttBase {}
public class MyClass
{
[Foo]
[Bar]
public string MyProperty { get; set; }
}
Ich möchte den Entwickler darauf beschränken, nur jeweils eines der abgeleiteten Attribute zu verwenden. Compiler sollte zu diesem Zeitpunkt einen Kompilierungsfehler geben. Wie kann ich das erreichen? Ist es möglich?Untergeordnete Attribute für mehrfache Verwendung einschränken
Soweit ich weiß, es ist nicht möglich mit a tributes. Das 'AllowMultiple = false 'ist nur für die spezifische Attributklasse definiert, so dass Sie nicht mehrere' Foo'-Attribute verwenden können, aber nicht für die komplette Vererbungsstruktur. –