Validator.TryValidateValue()
を利用したいが、メカニックを理解していない。DataAnnotationsのValidationContextを理解する
public class User {
[Required(AllowEmptyStrings = false)]
[StringLength(6)]
public string Name { get; set; }
}
と方法:
public void CreateUser(string name) {...}
私の検証コードは次のとおりです。
ValidationAttribute[] attrs = bit of reflection here to populate from User class
var ctx = new ValidationContext(name, null, null);
var errors = new List<ValidationResult>();
bool valid = Validator.TryValidateValue(name, ctx, errors, attrs);
name
の値がnull
になるまでそれが正常に動作しますが、私は、次のしている、と言います。私はをインスタンス化するときにValidationContext
を理解していません。また、TryValidateValue()
は、null以外のコンテキストも要求します。私は、検証する属性と値のリストを持っています。 ValidationContext
とは何ですか?
オブジェクト型をValidationContextに渡す必要があります。プロパティではなく、nullでないUserのインスタンスを渡す必要があります。 –
DataAnnotationの属性をカスタマイズする場合は、[my post](http://weblogs.asp.net/thangchung/archive/2010/06/25/extending-resource-provider-for-soring- resources-in-the-database.aspx)さらに、バリデータをカスタマイズすることもできます。 – thangchung