Я нашёл SO, чтобы найти ответ на этот вопрос, и лучший, который я могу найти на данный момент, это здесь , однако он ориентирован на экземпляры со статическими конструкторами; Я использую класс только статически.
Мой код:
public static class MailHelper {
private static string mailHost;
static MailHelper() {
var mailSettings = ConfigurationManager.GetSection("MailSettings") as NameValueCollection;
if (null == mailSettings) {
throw new ConfigurationErrorsException("Missing Mail Settings in the configuration file");
}
mailHost = ConfigurationManager.AppSettings["mailHost"];
if (null == mailHost) {
throw new ConfigurationErrorsException("Missing mailHost setting in the configuration file");
}
}
public static void SendMail(MailMessage Message) {
...
}
}
try {
MailHelper.SendMail(Message);
}
catch (ConfigurationErrorsException exc) {
...
}
// ???
MailHelper.SendMail(Message);
.
Итак, если статический конструктор выдает исключение при первом вызове, что произойдет во второй раз, когда я пытаюсь получить доступ к статическому методу SendMail ()?
PS: Извините, если вам не нравится версия оформления скобок K & R, предложенная Страуструпом, но не редактируйте мой пост только для того, чтобы сменить скобки на предпочитаемый стиль Allman. Благодаря.