Validation GetType(对象)上的EntLib验证问题-需要字符串而不是对象?

Validation GetType(对象)上的EntLib验证问题-需要字符串而不是对象?,validation,enterprise-library,gettype,Validation,Enterprise Library,Gettype,我有一个地址对象,我正试图使用EntLib验证数据: 根据以下方法: <ValidatorComposition(CompositionType.And, Ruleset:="FraudAnalysis")> _ <NotNullValidator(MessageTemplate:="Billing address is required.", Ruleset:="FraudAnalysis")> _ <TypeConversionValidator(GetType

我有一个地址对象,我正试图使用EntLib验证数据:

根据以下方法:

<ValidatorComposition(CompositionType.And, Ruleset:="FraudAnalysis")> _
<NotNullValidator(MessageTemplate:="Billing address is required.", Ruleset:="FraudAnalysis")> _
<TypeConversionValidator(GetType(Address), MessageTemplate:="Billing address must be an address object.", Ruleset:="FraudAnalysis")> _
Public Property BillingAddress() As Address
    Get
        Return _BillingAddress
    End Get
    Set(ByVal value As Address)
        _BillingAddress = value
    End Set
End Property
因此,现在在cardX.billingAddress=thisAddress时,应该启动billingAddress属性验证器(GetType(Address))。它似乎已启动,但返回以下错误:

要验证的值不是预期的类型:预期的System.String,但改为获取地址。

有人能看到这里的问题/提出解决方案吗


谢谢。

我想去掉
验证器组合
类型转换验证器
声明,因为我认为它们在这里是多余的。这将消除您的错误和几行代码

属性已经强类型化为
地址
类,因此无法在代码中将其设置为不是
地址
或与
地址
不多态的对象-使用额外的验证器检查这是多余的

验证器的默认组合是逻辑的,而且不管怎样,您只需要在希望合并和/或组时指定验证器组合,或者使用更复杂的组合和/或时指定验证器组合

            Address thisAddress = new Address();
            thisAddress.Address1 = "12312 Long Street";
            thisAddress.City = "Los Angeles";
            thisAddress.State = "CA";
            thisAddress.Zip = "93322";
            // set billing address to address
            cardX.BillingAddress = thisAddress;