2013-04-04 21 views
1

我想寫一個例外,並在ctor我添加了Contract.Requires聲明。由於某種原因,這個編譯失敗與錯誤 CC1027:合同格式不正確 我使用代碼合同插件的最新版本(1.4.60317.12)到VS2012Contract.Requires在例外ctor失敗,錯誤CC1027:格式錯誤的合同

Public NotInheritable Class ValidationException 
    Inherits Exception 

    Public Property Result() As FluentValidation.Results.ValidationResult 

    Public Sub New(ByVal ValidateResult As FluentValidation.Results.ValidationResult) 
     Contract.Requires(Of ArgumentNullException)(ValidateResult IsNot Nothing, "ValidateResult is nothing.") 


     Me.Result = ValidateResult 
    End Sub 

End Class 

如果刪除Contact.Requires並把

 If ValidateResult Is Nothing Then 
      Throw New ArgumentNullException("ValidateResult", "ValidateResult is nothing.") 
     End If 
     Contract.EndContractBlock() 

,而不是彙編作品,但我得到一個警告 CC1057:方法。WindowsApplication1.Data.Validation.ValidationException#構造函數(FluentValidation.Results.ValidationResult)「定製參數驗證,但組裝模式未設置爲支持此。它將被視爲需求。

這表明需要支持

這是一個錯誤還是我錯過了什麼?

回答

0

我看到了相同的行爲 - 在方法中工作正常,但在構造函數中導致格式錯誤的合同異常。我看到其他人有同樣的問題(一年前),並有posted on MSDN。 Mike Barnett非常棒,如果能夠重新創建它,應該能夠解決它。

+0

感謝您在MSDN上發帖。我也訂閱了MSDN上的線程,所以讓我們拭目以待,看看是否提供了答案。 – 2013-04-09 05:53:36

+1

是的,我們遇到了從VB構造函數中提取合約的問題。我們最近在該領域修復了一些問題,這些修補程序將在下一個版本中提供。 – 2013-04-26 23:24:39

相關問題