У меня есть следующие свойства на моей DomainRegistry
модели:
[Domain("Extension")]
public string Name { get; set; }
[Required(ErrorMessage = "Select extension")]
public string Extension { get; set; }
Домен, это моя пользовательская аннотация данных, и я попробовал все на моем IsValid
методе, чтобы получить доступ к значению в свойстве extension.
В моей пользовательской аннотации данных есть следующее:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class DomainAttribute : ValidationAttribute
{
public string ExtensionProperty { get; set; }
public DominioAttribute(string property)
{
ExtensionProperty = property;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
var extension = (string) properties.Find(Propriedade, true).GetValue(value);
if (extension == null) return new ValidationResult("Extension shouldn't be null");
return null;
}
Кажется, я не могу получить значение из расширения в методе IsValid
.У кого-нибудь есть совет, как это сделать?Также мне нужно получить расширение как строковое значение.