estoy usando la biblioteca 3.5 para el código de Microsoft contrae¿Qué significa "Contrato no puede estar en bloqueo de prueba"?
public object RetrieveById(int Id)
{
//stuff happens...
Contract.Ensures(newObject != null, "object must not be null");
return newProject;
//No error message if I move the Contract.Ensures to here
//But it isn't asserting/throwing a contract exception here either
}
me sale el mensaje del compilador: "Error 18 dentro de la sección Contrato bloque try en el método 'Controller.RetrieveById (System.Int32)'
ACTUALIZACIÓN:
lo he descubierto con su ayuda:
- Mover al principio
Comprobar contra Contract.Result
Contract.Ensures (Contract.Result() = null, "objeto no debe ser nulo"!);
puede publicar todo el contenido de su método. Además, 'Contract.Ensures' debe ser la primera línea de código en cualquier método. El código después de su declaración de devolución será inalcanzable. Esto explica por qué moverlo allí no hace nada. –