我有我的DomainRegistry
模型以下屬性:簡單的方式
[Domain("Extension")]
public string Name { get; set; }
[Required(ErrorMessage = "Select extension")]
public string Extension { get; set; }
域名是我的自定義數據註解,我已經在我的IsValid
方法來訪問值tryed一切內部擴展屬性。
我有我的自定義數據註解如下:
[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
方法從擴展中的值。任何人有任何提示如何做到這一點?另外我需要將擴展名作爲字符串值。
完全是我找到的解決方案。 –
雖然有效,但我建議使用validationContext.ObjectType而不是validationContext.ObjectInstance.GetType(),因爲此信息已經可用。 –