Bâtiment avec des Contrats de Code?
J'ai la méthode suivante:
private void DoSomething(CoolClass coolClass)
{
if (coolClass == null)
{
throw new ArgumentNullException("coolClass");
}
coolClass.Name = "Pepe";
}
Avec des Contrats de Code on peut l'écrire comme ceci:
private void DoSomething(CoolClass coolClass)
{
Contract.Requires<ArgumentNullException>(coolClass != null, "IS NULLL!");
coolClass.Name = "Pepe";
}
La deuxième méthode est plus rapide et plus simple. Le problème que j'ai est que lorsque vous construisez, dans l'exécution, il ne jette pas l'exception, elle affiche ceci:
Description: Une assemblée (probablement "CodeContractsTest") doit être réécrite en utilisant les contrats de code binaire graveur (CCRewrite) parce que c'est l'appel de Contrat.Et les CONTRACTS_FULL symbole est défini. Supprimer tout des définitions explicites de la CONTRACTS_FULL symbole de votre projet et de reconstruction. CCRewrite peut être téléchargé à partir http://go.microsoft.com/fwlink/?LinkID=169180. Après le graveur est installé, il peut être activé dans Visual Studio à partir du projet des Propriétés d'une page sur le Code des Contrats de volet. S'assurer que "Effectuer Exécution Contrat de Vérification" est activée, ce qui permet de définir CONTRACTS_FULL.
À moins que VS vous téléchargez le CodeContracts pour .net de ici.
Et puis vous cochez la case "Exécution cochez la case" dans le projet, de sorte que lorsque vous créez dans l'exécution, l'exception est levée.
Notre application est de construire avec Jenkins avec des scripts PowerShell. Est-il possible de vérifier au moment de l'exécution et jeter l'exception, avec une simple commande ou de l'attribut, ou quelque chose de facile?
OriginalL'auteur elranu | 2013-09-13
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas simplement écrire votre propre version de la méthode, si vous aimez la simplicité?
À l'aide de Contrats de Code juste pour avoir un amical API sons comme le tir de moineaux avec un canon.
J'ai dû changer le titre de la question.
Pourriez-vous décider si vous voulez que vos exception lors de l'exécution ou au moment de la compilation? Ce dernier n'est pas possible dans ce cas particulier.
en runtime 🙂 comme si c'était le code avec le si
stackoverflow.com/questions/1209166/...
OriginalL'auteur Wiktor Zychla
En changeant suivant les propriétés du projet j'ai pu éliminer l'obtention de cette exception lors de l'exécution.
Clic droit sur le projet -> Propriétés -> Contrat de Code (Onglet)
modifier la assembley mode "Standard Contrat Exige" également sélectionner la case à cocher - Effectuer Exécution contrat de vérification
OriginalL'auteur NidhinSPradeep