承接前文,本篇示範使用組態檔(而非屬性)設定驗證規則,適合需動態調整驗證邏輯、不想重新編譯的情境。
public class User
{
private string _name;
private int _age;
public string Name { get { return _name; } set { _name = value; } }
public int Age { get { return _age; } set { _age = value; } }
}
先編譯專案,產生組件供組態工具載入。
App.config,VS 2005 會自動以 Enterprise Library 組態編輯器開啟User 類別

Name、AgeNotNullValidator、StringLengthValidator(1,50)、Int32RangeValidator(0,200) 等
MessageTemplate 屬性可自訂失敗訊息

User user = new User { Name = "TerryLee", Age = 210 };
ValidationResults results = Validation.ValidateFromConfiguration<User>(user);
foreach (ValidationResult result in results)
{
Console.WriteLine($"Key: {result.Key}, Message: {result.Message}");
}
使用 Validation.ValidateFromConfiguration<T>() 靜態方法,自動讀取組態檔驗證規則。後續文章將介紹與 ASP.NET、WinForm 整合。