0
我正在構建與現有的Winforms應用程序共享模型對象的mvc web應用程序。我將VAB驗證引入其中。我需要驗證的一個項目是一個int,它可以是x個級別中的一個。將值注入到自定義VAB驗證程序中
我寫過一個LevelValidator,但它需要有可訪問的級別。
關於此代碼新電話,它看起來像我應該注入LevelValidator而不是水平? 其他方式?
public class LevelValidatorAttribute : ValueValidatorAttribute
{
protected override Microsoft.Practices.EnterpriseLibrary.Validation.Validator DoCreateValidator(Type targetType)
{
LevelValidator validator = new LevelValidator();
validator.Levels = this.Levels;
return validator;
}
[Dependency]
public Levels Levels { get; set; }
}
我相信這種類型的設計可以防止做基於配置的驗證。在這種情況下,VAB允許您攔截並替換某些部分,這允許您使用依賴注入來創建驗證器。但有一個警告:我已經瀏覽了VAB源代碼,並沒有找到一個簡單的方法來做到這一點。我希望你需要從'ConfigurationValidatorFactory'開始替換相當一部分的VAB基礎設施。我不會建議你在那上面花時間。 – Steven 2011-04-20 07:49:59
非常感謝Steven! :) – 2011-04-20 09:54:03
我結束了這個: '公共抽象類InjectedValueValidatorAttribute:ValueValidatorAttribute { public static IUnityContainer Container {get;組; ' }' – 2011-04-20 11:17:44