Проверка с использованием атрибутов

У меня есть, скажем, этот простой класс:

public class User
{
  [Required(AllowEmptyStrings = false, ErrorMessage="EmailIsRequired"]
  public string EmailAddress { get; set; }
}

Я знаю, как использовать Validator.TryValidateProperty и Validator.TryValidateObject в пространстве имен System.ComponentModel.DataAnnotations . Для того, чтобы это работало, вам нужен реальный экземпляр объекта, который вы хотите проверить.

Но теперь я хочу проверить определенное значение без экземпляра класса User, например:

TryValidateValue(typeof(User), "EmailAddress", "test@test.com");

Цель состоит в том, чтобы что я хочу протестировать значение, прежде чем фактически создавать экземпляр самого объекта (причина в том, что я разрешаю создавать только действительные сущности домена). Так что на самом деле я хочу использовать атрибуты проверки для классов вместо экземпляров.

Любые идеи, как это можно сделать?

Спасибо!

РЕДАКТИРОВАТЬ: тем временем я решил не использовать аннотации данных, а вместо этого использовать http : //fluentvalidation.codeplex.com , чтобы проверка перемещалась за пределы сущностей. Таким образом, проверка может быть запущена как внутри сущностей, так и из моих обработчиков команд. Сама проверка также выглядит более читаемой благодаря плавным обозначениям.

10
задан L-Four 28 October 2011 в 11:04
поделиться