gpt4 book ai didi

c# - 在某些情况下强制构建失败

转载 作者:行者123 更新时间:2023-12-02 22:31:01 25 4
gpt4 key购买 nike

我有一个 HierarchicalDictionary 类和一些派生类,例如 Territory、Department 等。我想控制从 HierarchicalDictionary 派生的所有类在构建期间都包含该类类型(领土、部门等)的属性“层次结构”。如果不是这样,我希望构建失败。

也就是说,如果 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)?

最佳答案

如果HierarchicalDictionary可以是abstract,您可以将属性定义为abstract在基类中。这在每个子类中强制执行具体实现。

如果您需要能够创建基类 HierarchicalDictionary 的实例,您可以通过添加接口(interface)来强制执行该属性。

关于c# - 在某些情况下强制构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com