使用驗證塊的屬性 驗證塊屬性定義及驗證規則

2021-08-28 07:46:09 字數 2419 閱讀 4214

驗證屬性(內建驗證應用程式塊屬性和主題中描述的屬性)可以用於各種目標,包括類、字段、屬性、方法和(在有限情況下)引數。有關資訊,請參見驗證屬性目標。還有一組屬性允許您更改其他屬性的行為。這些都是在驗證修飾符屬性中討論的。還可以指定要在單獨的元資料類中使用的屬性。有關此問題的詳細資訊,請參閱。

可以在**中包含驗證應用程式塊屬性來定義規則集(在使用.net資料注釋屬性時不能指定命名規則集)。這是使用配置或**的另一種選擇。如果不為屬性驗證規則指定名稱,則它是預設規則集的一部分。下面的**示例演示如何使用屬性定義名為"ruleseta"的規則集。

此**定義了乙個名為customer的類,它包含許多屬性,如firstname和lastname。附加到這些屬性的屬性將它們與驗證器相關聯。例如,stringlengthvalidator屬性附加到firstname屬性,並將其與stringlengthvalidator類關聯。該屬性包括兩個構造函式引數,用於約束firstname欄位中包含的值的長度、乙個指定要應用的規則集的引數和乙個定義訊息模板的引數。訊息模板包含驗證失敗時返回的訊息。驗證屬性的ruleset引數指示應用程式塊將使用"ruleseta"而不是匿名的預設規則集。在本例中,objectvalidator屬性是"ruleseta"規則集的一部分,並引用address類的"ruleseta"規則集。

using microsoft.practices.enterpriselibrary.common.configuration;

using microsoft.practices.enterpriselibrary.validation;

using microsoft.practices.enterpriselibrary.validation.validators;

public class customer

set }

[stringlengthvalidator(1, 50, ruleset = "ruleseta",

messagetemplate = "last name must be between 1 and 50 characters")]

public string lastname

set }

[relativedatetimevalidator(-120, datetimeunit.year, -18,

datetimeunit.year, ruleset="ruleseta",

messagetemplate="must be 18 years or older.")]

public datetime dateofbirth

set }

[regexvalidator(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*",

ruleset = "ruleseta")]

public string email

set

}[objectvalidator("validaddress", ruleset="ruleseta")]

public address address

set }

[rangevalidator(0, rangeboundarytype.inclusive, 1000000,

rangeboundarytype.inclusive, ruleset="ruleseta",

messagetemplate="rewards points cannot exceed 1,000,000")]

public int rewardpoints

set

}}

驗證屬性可以與各種目標一起使用。下表列出了目標,並描述了與屬性關聯的驗證器的行為。

驗證修飾符屬性允許您修改驗證屬性的行為。修飾符包括:

validatorcomplace屬性允許您將復合驗證器作為屬性提供。使用它,您可以覆蓋在使用多個驗證器屬性時發生的預設行為。您可以指定compantiontype.and或compositiontype.or作為該屬性的引數。預設的組合型別是和。預設行為與不使用屬性相同。通常,當邏輯複雜且需要or操作以及和操作時,可以使用和組合型別。

您可以在企業庫配置、企業庫驗證應用程式塊和資料分析的上下文中擁有復合驗證器。當使用dataannoations屬性時,復合驗證器只能是乙個隱式屬性和屬性的乙個隱式驗證器。對於驗證應用程式塊屬性,復合驗證器是由預設情況下使用屬性的和屬性組成的。可以通過validatorcomplace屬性更改復合驗證器邏輯。

企業庫配置不依賴屬性。配置有自己的結構來組成驗證器。將實際使用的驗證器通過使用邏輯規則和規則將這三個**的規則結合在一起。結果與每個源的驗證器的組成方式無關。

如果正在檢查的值為null,則ignorenulls屬性將不呼叫其他驗證器。下表顯示了如何組合屬性以實現配置規則集中使用和驗證器的常用方法的一些示例。

hasselfval環流屬性標記乙個包含自驗證邏輯的類。selfval環流屬性標記該類中的自驗證方法。有關更多資訊,請參見。

MVC Models定義驗證屬性

net mvc models定義字段過程中的驗證屬性引數 required 指定資料字段值是必需的。包含引數 errormessage 驗證失敗的錯誤訊息 errormessageresourcetype 錯誤訊息資源型別 errormessageresourcename 錯誤訊息資源名稱 data...

塊屬性,行內屬性,行內塊屬性的特點與常見標籤

一 塊屬性 特點 1.可以設定寬高 2.不可以與別人共處一行 3.不設定寬度的情況下,寬度為100 常見標籤 div p ul ol li button h1 h6 p等 二 行內屬性 特點 1.不可以設定寬高 2.可以與別人共處一行 3.其寬高由內容撐開 常見標籤 span 空格的話,頁面會顯示空...

Instancing 材質屬性塊

instancing 材質屬性塊 適應乙個材質去實現一些引數不同的效果,占用乙個drawcall,這種價效比特別高的方案,可以用在很多地方。c 部分 using unityengine executeineditmode private void onenable private void upda...