2012-11-13 3 views
5

il seguente codice:Code Contracts in Mono

Contract.Requires<ArgumentException>(command != null, Resources.Messages.CommandNotSpecified); 

chiamate

Contract.AssertMustUseRewriter (ContractFailureKind kind, System.String message) 

che sembra essere causato da non configurando Contratti codice per utilizzare il controllo del contratto di esecuzione, se si sta utilizzando Visual Studio.

l'articolo @http://devjourney.com/blog/code-contracts-part-2-preconditions/ implica che il codice prodotto, senza runtime checking configurato è:

public static void Requires<TException>(bool condition) 
where TException: Exception 
{ 
    AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires<TException>"); 
} 

Qualcuno sa cosa fare in MonoDevelop in modo che l'appalto di lavori come previsto?

L'eccezione esatto sto ottenendo è:

2012-11-13 23:33:24.815 StickX[339:c07] mvx: Diagnostic: 34.46 Exception masked NotImplementedException: The requested feature is not implemented. 
     at System.Environment.FailFast (System.String message) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Environment.cs:821 
    at System.Diagnostics.Contracts.Contract.AssertMustUseRewriter (ContractFailureKind kind, System.String message) [0x00011] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Diagnostics.Contracts/Contract.cs:83 
    at System.Diagnostics.Contracts.Contract.Requires[ArgumentException] (Boolean condition, System.String userMessage) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Diagnostics.Contracts/Contract.cs:271 
+0

Potrebbe includere l'eccezione esatta che stai vedendo? – Chris

+1

È necessario utilizzare il rewriter, che è disponibile solo su Windows al momento. Immagino che se lo volessi, potresti compilare Mono e poi elaborare gli eseguibili risultanti con il rewriter, quindi spostarli nuovamente nella tua piattaforma di destinazione. – porges

risposta

2

It's not implemented, quindi l'unica cosa da fare questo lavoro sarebbe per voi a scrivere l'implementazione. Mono è un progetto open source, sempre felice di dare nuovi contributi.