【发布时间】:2017-04-05 00:42:02
【问题描述】:
[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; }
}
我想限制开发人员一次只能使用每个派生属性中的一个。编译器在这个阶段应该给出编译错误。我怎样才能做到这一点?有可能吗?
【问题讨论】:
-
据我所知,属性是不可能的。
AllowMultiple = false只是为具体的Attribute类定义的,所以不能使用多个Foo-Attributes,而不是完整的继承树。
标签: c# .net oop inheritance attributes