我有一个名为IEntity的界面。
我希望实现此接口的所有类都具有类级属性。
我的支持是:
[System.AttributeUsage(System.AttributeTargets.Class)]
public class DbSchemaElementAttribute : System.Attribute
{
public string Name { get; set; }
}
如何确保类是否正在实现IEntity,它也必须具有此属性。
这甚至可能吗?接口是合同,所以它似乎是一个合理的地方来强制执行。
答案 0 :(得分:1)
.NET不包含强制派生类通过检查编译时实现必需属性的方法,包括抽象类和接口。
如果您需要使用属性,那么可能的解决方案之一是为此检查实施单元测试,或者对应用程序启动进行简单检查。
但我建议您使用属性或方法而不是属性。因此,它的实现很容易在编译时检查。