Я пытаюсь использовать методы проверки предприятия Microsoft для проверки своих организаций. В моем базовом классе у меня есть следующий метод:
public class BaseEntity
{
public bool IsValid()
{
return Validate().IsValid;
}
public ValidationResults Validate()
{
return Validation.Validate<this.GetType()>(this);
}
Проблема в том, что даже когда подкласс BaseEntity вызывает IsValid, this.GetType () всегда возвращает BaseEntity, а не тип подкласса. Я не хочу переписывать этот код для каждой сущности, так как это выглядит не совсем так. Есть ли другой способ сделать это?
У меня была идея создать защищенную переменную защищенного типа _validationType, и в каждой сущности установить для него значение .GetType этой сущности, но, похоже, должен быть лучший способ сделать это.
Обновление
По-видимому this.GetType (), кажется, работает, как я и надеялся. Не уверен, почему этого не было раньше.
Я также изменил метод Validate (), чтобы использовать следующий код:
return ValidationFactory.CreateValidator(this.GetType()).Validate(this);