簡體   English   中英

如何在C#中使用EmailAddressAttribute驗證字符串列表?

[英]How to validate list of string using EmailAddressAttribute in C#?

我有一堂課說“請求”。 它具有以下兩個屬性。 收件人的電子郵件驗證工作正常。 但是,它不適用於收件人。

[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; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM