7
  • estoy usando Code Contracts ver: 1.4.40602.0
  • he copiado el contenido necesario y transforma los archivos
  • de castillos de arena da salida a las excepciones basadas en mis requisitos del contrato

Ejemplo de código:Contratos de código + Castillo de arena: ¿hay alguna forma de personalizar la sección de excepciones?

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

Resultado resultante (en mi documentación):

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

Esto no es que malo, sin embargo, me pregunto si hay una forma de personalizar el texto de la Condición? Intenté agregar un mensaje de usuario Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");, sin embargo, esto no solucionó nada.

En el pasado tuve que escribir mi propia sección de documentación xml para excepciones. ¿Tendré que volver a hacer eso para obtener lo que necesito?


responsabilidad: Dado que los contratos de código es (actualmente) un proyecto DevLabs, esto podría cambiar, pero me pregunto si ya está disponible en este momento ... si no, estará seguro de sugerirlo.

Respuesta

3

Con Code Contracts 1.4.51019.0 puede usar la sobrecarga:

Requires<TException>(bool condition, string userMessage)

Sin embargo, su mensaje se anexará después de "Error de condición previa", seguido por la condición sin igual. Si Sandcastle no lo reconoce, creo que no es un error en los contratos de código, ya que el mensaje me parece correcto.

Cuestiones relacionadas