如何驗證數據
我們對實體和成員屬性添加驗證屬性來實施驗證規則。WCF RIA
Service提供了幾個驗證屬性來執行常用的驗證檢測,還提供了CustomValidationAttribute屬性來執行自定義的驗證檢測。
在RIA
Service中包含了如下的驗證屬性:
- DataTypeAttribute
- RangeAttribute
- RegularExpressionAttribute
- RequiredAttribute
- StringLengthAttribute
我 們在服務端添加驗證屬性,這些屬性會傳遞給生成的客戶端實體。在運行時,這些驗證規則會應用到客戶輸入的數據上。我們必須通過添加元數據類來添加這些驗證 屬性。
添加一個驗證屬性
- 爲實體類添加一個元數據類,可以參考上一節內容。
- 對
想要驗證的實體或成員屬性,添加驗證屬性來執行驗證。下面的例子示例如何對一個名字爲Address1的成員屬性添加驗證。
- 生 成解決方案。
- 在silverlight的應用項目中,打開Generated_Code文件下的代碼文件,注意到在客戶端代碼中也應用 了驗證屬性。
添加自定義驗證屬性
- 對實體類添加一個元數據類。
- 添 加一個共享代碼文件,以*.shared.cs命名。這個文件將會包含一個自定義驗證對象。
- 添加一個方法來判斷是否數據有效。這個方法
必須是public和static,還必須返回一個ValidationResult來表示驗證的結果。下面示例是一個有名爲
IsProductValid方法的ProductValidator類,這個方法驗證一個Product實體。
- 對
象要驗證的實體或成員屬性,添加[CustomValidationAttribute]批註屬性,並傳遞驗證對象和執行驗證的方法的名字。下面的示例顯
示了對一個實體應用[CustomValidation]屬性,驗證對象的類型是 ProductValidator,驗證方法的名字是
IsProductValid。
- 生 成解決方案。
- 在Silverlight客戶端,打開Generated_Code文件夾下的文件。注意到在共享代碼中 CustomValidationAttribute應用到了實體上。