3

こんにちは、電子メール サービス クラスを持つビジネス ロジック層があります。このクラスには、電子メールを作成するメソッドがあります (この部分は機能し、正常にコンパイルされます)。ただし、メソッドをテストするためにアプリ構成ファイルにアクセスしようとすると、「アプリ構成メール設定を取得できません」というエラーが表示され、そうでない場合はすべての値が null であると表示されます。コードのアプリ構成セクションは次のとおりです。


<mailSettings>
  <smtp deliveryMethod="Network" from="info@example.com">
    <network host="localhost" port="25" defaultCredentials="true"/>
  </smtp>
</mailSettings>

app.config に接続するために使用するコードを次に示します。


private System.Net.Configuration.MailSettingsSectionGroup mailSettings;

SmtpClient client = new SmtpClient(mailSettings.Smtp.Network.Host, mailSettings.Smtp.Network.Port);

ここで何が間違っていますか?

4

3 に答える 3

6

変数は何にも初期化されていませmailSettingsん-魔法のように構成が含まれることはありません。

クラスにアクセスするには、クラスを使用する必要があります(まだ追加していない場合はConfigurationManager、への参照を追加することを忘れないでください) 。次のコードも追加する必要があります。System.Configurationusing System.Net.Configuration

SmtpSection smtpSection = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;

if (smtpSection != null)
{
    SmtpClient client = new SmtpClient(smtpSection.Network.Host, smtpSection.Network.Port);
}
于 2010-04-13T10:37:11.223 に答える
1
SmtpSection smtpSection = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
if (smtpSection != null) {
    SmtpClient client = new SmtpClient(smtpSection.Network.Host, smtpSection.Network.Port);
} 
于 2012-05-07T13:11:32.267 に答える