如何在c#中使用EmailAddressAttribute验证字符串列表

本文关键字:EmailAddressAttribute 验证 字符串 列表 | 更新日期: 2023-09-27 18:05:11

我有一个类说"Request"。它有两个性质如下所示。收件人的电子邮件验证工作正常。但是,它不适用于收件人。

[EmailAddress] 
public string Recipient { get; set; }
[EmailAddress] 
public List<string> Recipients { get; set; }

感谢您的帮助。

如何在c#中使用EmailAddressAttribute验证字符串列表

您可以在自定义属性中使用现有的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; }
}
相关文章:
  • 没有找到相关文章