哪个第三方Code-by-Contract库最像微软的.NET 4.0库?

4

我希望通过编写合同代码来开始编码。我有VS2010(带有C# 4.0编译器),但我必须针对3.5框架。

哪个第三方代码合同库的类和接口最像.NET 4.0?


你尝试过使用Microsoft的吗?它通过重写MSIL工作,所以它不是一个真正的“库”,我相信它在3.5上也能很好地工作。 - Stephen Cleary
当我添加“using System.Diagnostics.Contracts;”时,它显示Contracts不存在。MSDN说它在mscorlib.dll中。如果我可以从针对3.5的项目引用4.0版本,那将令我惊讶。 - MatthewMartin
尝试引用 Microsoft.Contracts dll。无论如何,那里是3.5类所在的地方。 - Stephen Cleary
1个回答

9
用户指南中可以了解到:

从CLR v4开始,Contract类和相关类型存储在mscorlib.dll中。在CLR v4之前,这些类型出现在名为Microsoft.Contracts.dll的单独程序集中,该程序集安装在%PROGRAMFILES%/Microsoft/Contracts/PublicAssemblies下。如果您正在编译针对先前版本的CLR,则需要添加对此程序集的引用。

如果您想将同一构建的程序集同时用于3.5和4.0(我不确定 - 可能会奏效),那么您可能会遇到一些有趣的问题,但如果只是使用3.5,那应该没问题。

此扩展程序可安装到VS2008和VS2010中。


你可以使用相同的程序集针对多个CLR版本进行构建吗?实际上...你为什么要这样做呢? - Powerlord
@R. Bemrose:如果您有一些应用程序运行在.NET 3.5上,另一些则运行在.NET 4.0上,您可能只想构建一次...如果它能够正常工作的话。 - Jon Skeet
我相信相关的类被CC重写器编译到你的程序集中,因此不应该有任何版本问题。(至少这是我从Reflector中了解到的!) - porges
@Porges:对于许多内容确实是这样,但我不确定是否涵盖了所有类... - Jon Skeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接