我有一个名为IEntity的接口。
我希望所有实现这个接口的类都有一个类级别的属性。
我的致敬是:
[System.AttributeUsage(System.AttributeTargets.Class)]
public class DbSchemaElementAttribute : System.Attribute
{
public string Name { get; set; }
}我如何确保类实现了IEntity,它也必须有这个属性。
这有可能吗?接口是契约,所以它似乎是一个执行这一约定的合乎逻辑的地方。
发布于 2016-09-01 13:06:30
.NET不包含用于强制派生类实现必需属性的方法,并在编译时进行检查,对于抽象类和接口都是如此。
如果您有使用属性的需求,那么可能的解决方案之一是实现此检查的单元测试,或者在应用程序启动时实现简单的检查。
但我建议您使用属性或方法,而不是属性。因此,它的实现将很容易在编译时进行检查。
https://stackoverflow.com/questions/39262849
复制相似问题