2010-02-04 39 views
0

我有我試圖驗證數據不要使用EntLib Address對象:鑑於以下方法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 

我創建一個地址對象:所以現在在

  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; 

cardX.billingAddress = thisAddress,BillingAddress屬性驗證器(GetType(Address))應該觸發。它似乎着火,但返回此錯誤:

要驗證的值不是預期的類型:預期的System.String,但得到地址,而不是。

任何人都可以在這裏看到問題/建議修復?

謝謝。

回答

1

我只是擺脫了ValidatorCompositionTypeConversionValidator聲明,因爲我認爲它們在這裏是多餘的。這將擺脫你的錯誤和幾行代碼。

該物業已經強類型的Address類,所以也沒有辦法,你可以在代碼中設置它的對象是不是Address或不具有多態性Address - 有一個額外的校驗來檢查這是多餘的。

驗證器的默認組合是邏輯AND,無論如何,只需要在指定OR組時指定驗證器組合,或者使用更復雜的組合和/或組合。

+0

這樣做。謝謝。 – ElHaix 2010-02-04 21:56:07

相關問題