2010-05-14 31 views
4

Je veux passer au codage par contrat. J'ai eu VS2010 (avec le compilateur C# 4.0) mais je dois cibler le framework 3.5.Quelle bibliothèque de code par contrat tiers est la plus proche de la bibliothèque .NET 4.0 de MS?

Quelle bibliothèque de code tiers par contrat a les classes et l'interface les plus comme les .NET 4.0?

+0

Avez-vous essayé d'utiliser [Microsoft] (http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx)? Cela fonctionne en réécrivant le MSIL, donc ce n'est pas vraiment une "bibliothèque", et je pense que ça marcherait très bien sur 3.5. –

+0

Lorsque j'ajoute "using System.Diagnostics.Contracts;" Cela dit, les contrats ne sont pas là. MSDN dit qu'il est dans mscorlib.dll. Je serais surpris si je peux référencer la version 4.0 d'un projet ciblant 3.5. – MatthewMartin

+0

Essayez de référencer la DLL Microsoft.Contracts. C'est là que les classes 3.5 étaient, de toute façon. –

Répondre

9

De l'user guide:

À partir de la v4 CLR, la classe contrat et types connexes résident dans mscorlib.dll. Avant CLR v4, ces types apparaissent dans un assembly distinct appelé Microsoft .Contracts. dll que est installé sous % PROGRAMFILES%/Microsoft/Contracts/PublicAssemblies. Vous pouvez avoir besoin d'ajouter une référence à cet assembly si vous compilez par rapport à un CLR antérieur à 4,0.

Vous pouvez avoir des questions intéressantes si vous souhaitez utiliser le même ensemble construit à la fois contre 3,5 et 4.0 (je ne sais pas - il peut juste travailler) mais si vous utilisez juste 3.5, que ça devrait aller.

L'extension s'installe dans VS2008 ainsi que VS2010, je crois.

+0

Vous pouvez créer le même assemblage sur plusieurs versions CLR? En fait ... pourquoi voudriez-vous? – Powerlord

+0

@R. Bemrose: Si vous avez des applications qui s'exécutent sur .NET 3.5 et d'autres sur .NET 4.0, vous ne voudrez peut-être construire qu'une seule fois ... si cela fonctionne. –

+0

Je crois que les classes pertinentes sont compilées dans * votre * assembly par le réécriveur CC, de sorte qu'il ne devrait pas y avoir de problèmes de version. (Au moins c'est ce que j'ai recueilli de Reflector!) – porges