Der folgende Code:-Code Verträge in Mono
Contract.Requires<ArgumentException>(command != null, Resources.Messages.CommandNotSpecified);
Anrufe
Contract.AssertMustUseRewriter (ContractFailureKind kind, System.String message)
, die durch nicht-Code Konfiguration Verträge verursacht zu sein scheint Laufzeitvertragsprüfung zu verwenden, wenn Sie Visual Studio verwendet haben.
der Artikel @http://devjourney.com/blog/code-contracts-part-2-preconditions/ bedeutet, dass der Code ohne Laufzeit erzeugt konfiguriert Prüfung ist:
public static void Requires<TException>(bool condition)
where TException: Exception
{
AssertMustUseRewriter(ContractFailureKind.Precondition, "Requires<TException>");
}
Weiß jemand, was in MonoDevelop zu tun, damit der Vertrag wie erwartet funktioniert?
Die genaue Ausnahme Ich erhalte ist:
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
Könnten Sie die genaue Ausnahme sind Sie sehen? – Chris
Sie müssen den Rewriter verwenden, der momentan nur unter Windows verfügbar ist. Ich denke, wenn Sie wirklich wollten, könnten Sie unter Mono kompilieren und dann die resultierenden ausführbaren Dateien mit dem Rewriter verarbeiten und sie dann zurück auf Ihre Zielplattform verschieben. – porges