如何在c#中使用EmailAddressAttribute验证字符串列表
本文关键字:EmailAddressAttribute 验证 字符串 列表 | 更新日期: 2023-09-27 18:05:11
我有一个类说"Request"。它有两个性质如下所示。收件人的电子邮件验证工作正常。但是,它不适用于收件人。
[EmailAddress]
public string Recipient { get; set; }
[EmailAddress]
public List<string> Recipients { get; set; }
感谢您的帮助。
您可以在自定义属性中使用现有的EmailAddress属性。
[AttributeUsage(AttributeTargets.Property)]
public sealed class EmailAddressListAttribute : ValidationAttribute
{
private const string defaultError = "'{0}' contains an invalid email address.";
public EmailAddressListAttribute()
: base(defaultError) //
{
}
public override bool IsValid(object value)
{
EmailAddressAttribute emailAttribute = new EmailAddressAttribute();
IList<string> list = value as IList<string>;
return (list != null && list.All(email => emailAttribute.IsValid(email)));
}
public override string FormatErrorMessage(string name)
{
return String.Format(this.ErrorMessageString, name);
}
}
最后是这样的:
/// <summary>
///
/// </summary>
[DataContract]
public class EmailAddress
{
/// <summary>
///
/// </summary>
[DataMember]
[EmailAddress]
public string Id { get; set; }
/// <summary>
///
/// </summary>
[DataMember(Name = "Name")]
public string DisplayName { get; set; }
}