2012-11-13 26 views
5

Các mã sau đây:Hợp đồng Mã trong Mono

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

cuộc gọi

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

mà dường như được gây ra bởi không cấu hình Mã Hợp đồng sử dụng kiểm tra hợp đồng thời gian chạy, nếu bạn đang sử dụng Visual Studio.

bài viết @http://devjourney.com/blog/code-contracts-part-2-preconditions/ ngụ ý rằng mã được sản xuất mà không cần thời gian chạy việc kiểm tra cấu hình là:

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

Có ai biết phải làm gì trong MonoDevelop để các hợp đồng công trình như mong đợi?

Ngoại lệ chính xác tôi nhận được là:

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

Ông có thể bao gồm các ngoại lệ chính xác mà bạn đang nhìn thấy? – Chris

+1

Bạn phải sử dụng trình ghi đè, hiện chỉ khả dụng trên Windows. Tôi đoán nếu bạn thực sự muốn, bạn có thể biên dịch theo Mono và sau đó xử lý các tập tin thực thi kết quả với các rewriter, sau đó di chuyển chúng trở lại nền tảng mục tiêu của bạn. – porges

Trả lời

2

It's not implemented, do đó, điều duy nhất để làm công việc này sẽ cho bạn viết thực hiện. Mono là một dự án mã nguồn mở, luôn sẵn lòng nhận những đóng góp mới.

Các vấn đề liên quan