1

我正在尝试编写一个异常,并在 ctor 上添加了一个 Contract.Requires 声明。由于某种原因,编译失败并出现错误 CC1027: Malformed contract I am using the latest version (1.4.60317.12) of code contract addin to VS2012

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.#ctor(FluentValidation.Results.ValidationResult)' 具有自定义参数验证,但装配模式未设置为支持此。它将被视为要求。

表示支持Requires

这是一个错误还是我错过了什么?

4

1 回答 1

0

我看到了相同的行为 - 在方法中工作正常,但在构造函数中导致格式错误的合同异常。我看到其他人(一年前)也有同样的问题,并已在 MSDN 上发布。Mike Barnett 很棒,如果他能够重新创建它,应该能够修复它。

于 2013-04-09T01:33:26.797 回答