Validation GetType(对象)上的EntLib验证问题-需要字符串而不是对象?
我有一个地址对象,我正试图使用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
<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;