0

私のクラスには、SmtpClient を使用してメールを送信する機能があります。

public void Send(System.Net.Mail.MailMessage mail)
    {      
        using (SmtpClient client = new SmtpClient())
        {                
            client.Host = ConfigReader.SmtpHost;
            client.Port = ConfigReader.SmtpPort;
            client.EnableSsl = ConfigReader.SmtpEnableSsl;
            client.UseDefaultCredentials = ConfigReader.SmtpDefaultCredentials;
            client.Credentials = new NetworkCredential(ConfigReader.SmtpUserName, ConfigReader.SmtpPassword);

            client.Send(mail);
        }            
    }

この関数で別のクラスを使用して SMTP 構成を設定する必要があります。しかし、この関数が呼び出されるたびに構成を設定するのは正しくないようです。

これに対するより良いアプローチは何ですか?一度だけ呼び出されるように他の Init 関数に構成をロードすると、その場合に SmtpClient はどのように破棄されますか?

4

1 に答える 1

0

オブジェクトが関数のスコープ外に配置されるため、SmtpClientオブジェクトをローカルに作成し、さらにステートメントで作成します。usingオブジェクトを作成するたびに、オブジェクトを構成する必要があります。

于 2013-01-16T13:31:20.967 に答える