不同项目的代码合同
Code Contracts on different projects
我有一个合同项目(项目 A)生成一个库,另一个项目(项目 B)实现该库的接口。
我试过将合同文件从项目 A 复制到项目 B,合同在运行时触发,没有问题。但是当我试图从项目 B 引用项目 A 时。静态分析器仍在工作,但运行时检查不再工作。
我是不是做错了什么?关于代码合同的工作原理,我有什么不明白的地方吗?
重要提示: 这里讨论过 - CodeContracts issue
在新解决方案中复制了类似的项目结构。一切正常,没有任何问题。我仍然找不到生产解决方案有什么问题。
出于绝望,我创建了一个新的 CompanyName.ContractsDebug
库。一些测试合约实现在使用该库时触发了运行时检查。然后我尝试进行愚蠢的修复,我将旧合同项目 (CompanyName.Contracts
) 的命名空间重构为一个新名称 (CompanyName.Shared.Contracts
)。这不知何故解决了一切。非常奇怪的错误。
更新
我仓促地说将它移至 Shared.Contracts
有效。将其移至 Shared.IContracts
即可。我不知道 Contracts
关键字是怎么回事。
我有一个合同项目(项目 A)生成一个库,另一个项目(项目 B)实现该库的接口。
我试过将合同文件从项目 A 复制到项目 B,合同在运行时触发,没有问题。但是当我试图从项目 B 引用项目 A 时。静态分析器仍在工作,但运行时检查不再工作。
我是不是做错了什么?关于代码合同的工作原理,我有什么不明白的地方吗?
重要提示: 这里讨论过 - CodeContracts issue
在新解决方案中复制了类似的项目结构。一切正常,没有任何问题。我仍然找不到生产解决方案有什么问题。
出于绝望,我创建了一个新的 CompanyName.ContractsDebug
库。一些测试合约实现在使用该库时触发了运行时检查。然后我尝试进行愚蠢的修复,我将旧合同项目 (CompanyName.Contracts
) 的命名空间重构为一个新名称 (CompanyName.Shared.Contracts
)。这不知何故解决了一切。非常奇怪的错误。
更新
我仓促地说将它移至 Shared.Contracts
有效。将其移至 Shared.IContracts
即可。我不知道 Contracts
关键字是怎么回事。