Можно ли сбросить ServicePointManager?

Я пытаюсь следовать коду, подобному приведенному наКак System.Net.Mail.SMTPClient выполняет локальную привязку IP Я использую Windows 7 и .Net 4.0 на компьютере с несколькими IP-адресами. у меня естьBindIPEndPointDelegate определенный

<code>private static IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
{
    string IPAddr = //some logic to return a different IP each time
    return new IPEndPoint(IPAddr, 0);
}
</code>

Затем я отправляю свою электронную почту, используя

<code>SmtpClient client = new SmtpClient();
client.Host = SMTP_SERVER; //IP Address as string
client.Port = 25;
client.EnableSsl = false;
client.ServicePoint.BindIPEndPointDelegate 
   = new System.Net.BindIPEndPoint(BindIPEndPointCallback);
client.ServicePoint.ConnectionLeaseTimeout = 0;
client.Send(msg);  //msg is of type MailMessage properly initialized/set
client = null;
</code>

При первом вызове этого кода вызывается делегат, и независимо от того, какой IP-адрес установлен, он используется. В следующий раз, когда этот код вызывается, делегат никогда не вызываетсяi.e. the first IP Address is used subsequently. Можно ли изменить ситуацию, когда при каждом вызове кода вызывается обратный вызов делегата?

Я думаюServicePointManager (который являетсяstatic class) кэширует результат первого вызова делегата. Можно ли сбросить этот класс? Я не забочусь о производительности.

Спасибо, О. О.

Ответы на вопрос(2)

Ваш ответ на вопрос