如何在C#中使用EmailAddressAttribute验证字符串列表?
我有一个班级说“请求”。它有两个属性,如下所示。收件人的电子邮件验证工作正常。但是,它不适用于收件人如何在C#中使用EmailAddressAttribute验证字符串列表?,c#,validation,data-annotations,email-address,C#,Validation,Data Annotations,Email Address,我有一个班级说“请求”。它有两个属性,如下所示。收件人的电子邮件验证工作正常。但是,它不适用于收件人 [EmailAddress] public string Recipient { get; set; } [EmailAddress] public List<string> Recipients { get; set; } [电子邮件地址] 公共字符串收件人{get;set;} [电邮地址] 公共列表收件人{get;set;} 感谢您的帮助。您可以在自定义属性中使用现有的
[EmailAddress]
public string Recipient { get; set; }
[EmailAddress]
public List<string> Recipients { get; set; }
[电子邮件地址]
公共字符串收件人{get;set;}
[电邮地址]
公共列表收件人{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);
}
}
[AttributeUsage(AttributeTargets.Property)]
公共密封类EmailAddressListAttribute:ValidationAttribute
{
private const string defaultError=“{0}”包含无效的电子邮件地址。”;
公共EmailAddressListAttribute()
:base(默认错误)//
{
}
公共覆盖布尔值有效(对象值)
{
EmailAddressAttribute emailAttribute=新的EmailAddressAttribute();
IList list=作为IList的值;
return(list!=null&&list.All(email=>emailAttribute.IsValid(email));
}
公共重写字符串FormatErrorMessage(字符串名称)
{
返回String.Format(this.ErrorMessageString,name);
}
}
您可以在自定义属性中使用现有的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);
}
}
[AttributeUsage(AttributeTargets.Property)]
公共密封类EmailAddressListAttribute:ValidationAttribute
{
private const string defaultError=“{0}”包含无效的电子邮件地址。”;
公共EmailAddressListAttribute()
:base(默认错误)//
{
}
公共覆盖布尔值有效(对象值)
{
EmailAddressAttribute emailAttribute=新的EmailAddressAttribute();
IList list=作为IList的值;
return(list!=null&&list.All(email=>emailAttribute.IsValid(email));
}
公共重写字符串FormatErrorMessage(字符串名称)
{
返回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; }
}
//
///
///
[数据合同]
公共类电子邮件地址
{
///
///
///
[数据成员]
[电邮地址]
公共字符串Id{get;set;}
///
///
///
[数据成员(Name=“Name”)]
公共字符串DisplayName{get;set;}
}
我的结局是:
/// <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; }
}
//
///
///
[数据合同]
公共类电子邮件地址
{
///
///
///
[数据成员]
[电邮地址]
公共字符串Id{get;set;}
///
///
///
[数据成员(Name=“Name”)]
公共字符串DisplayName{get;set;}
}
U可以很容易地编写自定义属性。我想知道是否已经有了此属性或语法。我还可以为Email编写一个单独的类,比如Recipient{EmailId,Name etc},并在该类中应用EmailAddressAttribute。我还可以为Email编写一个单独的类,比如Recipient{EmailId,Name等},并在该类中应用EmailAddressAttribute。这里我使用List而不是List。这里我使用List而不是List。