2012-06-19 11 views
7

Estoy tratando de agregar validación para mi tipo en tiempo de compilación utilizando el contrato, pero desafortunadamente no funciona. Por ejemplo, el siguiente código no da error de compilación al compilar el proyecto. ¿Debo habilitar algo?Contrato.Asegurar no arrojar error de compilación

Contract.Assert(false, "Invalid state!"); 

Respuesta

7

Sí, debe habilitar la comprobación estática. Vaya a las propiedades del proyecto y visite la pestaña "Contratos de código". Por supuesto, tendrá que haber instalado primero la extensión del comprobador estático, que IIRC solo está disponible para Visual Studio Ultimate. Consulte el user documentation para obtener detalles de las opciones exactas disponibles.

Tenga en cuenta que esto ocurre después de la fase de compilación inicial, por lo que a veces verá un retraso entre la primera parte de la compilación y los resultados del verificador estático. (No es realmente un error de "compilación", es un error de "verificación de contrato")

+2

Un paquete [Contratos de código] (http://research.microsoft.com/en-us/projects/contracts/) contiene el Comprobador estático para contratos ('cccheck.exe') que funciona con casi todas las versiones de VS, excepto Express. Si tiene la versión Ultimate, genial, si no lo hace, sin preocupaciones, los contratos funcionan bien con Professional. :) –

+0

la documentación del usuario ya no existe Jon. proyecto fue movido a github. Actualice su enlace –

+1

@JohnDemetriou: actualizado, pero en el futuro si ya conoce el nuevo enlace, sería mejor simplemente editar la respuesta para actualizar el enlace. –

Cuestiones relacionadas