El siguiente código me da la advertencia Contract class 'FooContracts' should be an abstract class
. De todos los ejemplos que he leído en línea (por ejemplo, http://www.infoq.com/articles/code-contracts-csharp), esto debería funcionar (presumiblemente sin advertencias del compilador).La clase de contrato debe ser una clase abstracta
[ContractClass(typeof(FooContracts))]
public interface IFoo {
void Bar(string foo);
}
[ContractClassFor(typeof(IFoo))]
internal sealed class FooContracts : IFoo {
void IFoo.Bar(string foo) {
Contract.Requires(foo != null);
}
}
estoy en Visual Studio 2010, con las siguientes opciones en la sección Code Contracts
de las propiedades del proyecto:
- Realizar tiempo de ejecución del contrato de control (conjunto de
Full
) - Realizar Contrato estática Comprobación (debajo de
Static Checking
) - Entrada en el fondo
También definí el símbolo de compilación CONTRACTS_FULL
para que ReSharper se apague.
¿Me falta algo para hacer esta compilación sin advertencias?
huh. Gracias por el enlace. ese hecho nunca fue mencionado ni demostrado en ningún código de ejemplo que encontré. – tmont