Voglio essere in grado di fare questo:Convalida una stringa di e-mail in .NET utilizzando EmailAddressAttribute, ma non su un attributo
string email = "[email protected]";
bool isValid = IsValidEmail(email);
//returns true
... ma usare la logica Microsoft ci ha già dato in EmailAddressAttribute .
Ci sono centinaia di implementazioni buone e cattive di IsValidEmail là fuori, e non voglio aggiungere il mio, quando posso usare qualcosa, Microsoft ci ha già pensato. È ovvio che faranno un lavoro migliore di me.
Nelle versioni recenti ASP.Net, abbiamo System.ComponentModel.DataAnnotations, che ci fornisce l'eccellente EmailAddressAttribute, che ci permette di decorare i nostri modelli come questo:
public class SomeModel
{
[EmailAddress]
public string Email { get; set; }
}
Il class is sealed, quindi non posso chiamare EmailAddressAttribute.IsValid()
C'è un buon modo per utilizzare ciò che Microsoft ha già fatto? Esiste un metodo da qualche parte nel framework .Net, che consenta di testare le stringhe contro le annotazioni dei dati, che ho trascurato?
Qualcosa sulla falsariga di ..:
var emailChecker = new DataAnnotationsChecker<EmailAddressAttribute>();
string email = "[email protected]";
bool isValid = emailChecker.IsValid(email);
//returns true
Se non è possibile immaginare perché vorrei questo, pensare di ottenere un elenco e si desidera controllare quali sono le email validi.
avrei giurato, ho già provato ... Ma naturalmente questo non nel lavoro fatto. Mi sento sciocco ora. Grazie. :) – Kjensen
Felice di aiutare. (non ti fa sembrare sciocco) :) – Nkosi
Una domanda seria qui: perché questo non è il metodo approvato/accettato di controllare gli indirizzi e-mail in. Net? Microsoft eseguirà la convalida della posta elettronica meglio di chiunque altro. –