我有一个 HierarchicalDictionary 类和一些派生类,例如 Territory、Department 等。我想控制从 HierarchicalDictionary 派生的所有类在构建期间包含该类(Territory、Department 等)类型的属性“层次结构” . 如果不是这样,我希望构建失败。
也就是说,如果 Territory 不包含 Territory 类型的属性 Hierarchy 或 Department 不包含 Department 类型的属性 Hierarchy,则构建应该会失败。
所以我希望在编译条件期间像这样检查(伪代码):
foreach (Class1 that derive from HierarchicalDictionary)
if(!(Class1 contains property Hierarchy of type Class1))
build fail
我考虑过CodeContracts,但我不知道在构建期间是否存在因条件而失败的可用性。可能有一些适当的方法吗?
UPD:我将尝试描述针对我的情况的其他限制:
HierarchicalDictionary 不存储(在数据库中)类。并存储派生类,因此相应的表包含数据库中的自引用字段。当我从 HierarchicalDictionary 派生类“C1”时,我的意思是,这个类必须包含“C1”类型的属性(或字段)“层次结构”。像 [ClassMustContainHierarchyFieldOfMyselfType] 属性。我想在编译期间控制这个事实。如果我有从 HierarchicalDictionary 派生的类“C2”并且不包含字段(或属性)“public C2 Hierarcy”,则构建应该失败。
可能没有任何“内置”解决方案。可能我可以使用构建前或构建后事件或其他任何东西(例如 CodeContracts)?