7
  • sto usando Code Contracts ver: 1.4.40602.0
  • Ho copiato il contenuto necessario e trasforma i file
  • Sandcastle uscite le eccezioni basate sui miei requisiti contrattuali

Esempio di codice:Contratti di codice + Sandcastle - Qualche modo per personalizzare la sezione delle eccezioni?

public class MyClass 
{ 
    public MyClass(Object obj) 
    { 
     Contract.Requires<ArgumentNullException>(obj != null); 
    } 
} 

Uscita risultante (nella mia documentazione):

| Exception      | Condition      | 
|---------------------------------|---------------------------------| 
| System.ArgumentNullException | obj == null      | 

Questo non è quello cattivo, tuttavia mi chiedo se c'è un modo per personalizzare il testo della condizione? Ho tentato di aggiungere un messaggio utente Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");, tuttavia questo non ha risolto nulla.

In passato ho dovuto scrivere la mia sezione di documentazione xml per le eccezioni. Dovrò farlo di nuovo per ottenere ciò di cui ho bisogno?


responsabilità: poiché i contratti codice è (al momento) un progetto DevLabs, questo potrebbe cambiare, ma mi chiedo se è già disponibile in questo momento ... se non, sarò sicuro di suggerire.

risposta

3

Con Code Contracts 1.4.51019.0 si possono utilizzare l'overload:

Requires<TException>(bool condition, string userMessage)

Tuttavia, il messaggio sarà allegato dopo "Precondizione Fallita" seguito dalla condizione senza pari. Se Sandcastle non lo riconosce, ritengo che non sia un difetto nei Contratti di codice, dal momento che il messaggio mi appare correttamente.

Problemi correlati