Ciclo de formação Scrum em Junho de 2010
Monday, May 24th, 2010Autor: Tiago Andrade e Silva
Em Junho haverá mais dois cursos Certified Scrum Master em Lisboa e no Porto.
Mais informações no site da comunidade em
Em Junho haverá mais dois cursos Certified Scrum Master em Lisboa e no Porto.
Mais informações no site da comunidade em
Ao se configurar o log4net para usar um SmtpAppender, para envio de e-mails com os logs da aplicação, deixo uma nota de reparo no que concerne o envio para vários destinatários:
A documentação refere que para diversos destinatários dever-se-à configurar o log4net separando os endereços por (;). Se assim for surgirá o seguinte erro:
System.FormatException: The specified string is not in the form required for an e-mail address.
at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName)
at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
at log4net.Appender.SmtpAppender.SendEmail(String messageBody)
at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events)
Isto porque
O SmtpAppender do log4net recorre ao tipo System.Net.Mail. MailAddressCollection da Framework .NET, que por sua vez usa o método Add(string) para adicionar os endereços. Ora acontece que na documantação está o seguinte:
If multiple e-mail addresses separated with a semicolon character (";") are passed in the addresses parameter. a FormatException exception is raised.
Portanto a documentação do log4net pode induzir em erro. Modificar a separação dos endereços por (,) resolverá o problema.
Happy codding
Talvez se perguntem, hein? Pois a ideia é saber “converter” texto com acentuação e não só, pelo corresponde texto sem acentuação. Ora dito isto o que se quer:
Ora então o código que possibilita a alteração:
1: public string RemoveDiacritics(string input)
2: {
3: string stFormD = input.Normalize(NormalizationForm.FormD);
4: var sb = new StringBuilder();
5:
6: for (int i = 0; i < stFormD.Length; i++)
7: {
8: UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);
9: if (uc != UnicodeCategory.NonSpacingMark)
10: {
11: sb.Append(stFormD[i]);
12: }
13: }
14:
15: return (sb.ToString().Normalize(NormalizationForm.FormC));
16: }
Happy Coding
ref: Michael Kaplan blog