¿Es posible restablecer el ServicePointManager?

Estoy intentando seguir el código similar al dado en¿Cómo hace System.Net.Mail.SMTPClient su enlace IP local? Estoy utilizando Windows 7 y .Net 4.0 en una máquina con varias direcciones IP. TengoBindIPEndPointDelegate definido

<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>

Luego envío mi correo electrónico usando

<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>

La primera vez que se llama a este código, se llama al delegado y se configura la dirección IP, se utiliza. Las siguientes veces que se llama a este código, nunca se llama al delegadoes decir, la primera dirección IP se utiliza posteriormente. ¿Es posible cambiar esta situación donde cada vez que se llama al código, se llama a la devolución de llamada delegada?

Estoy pensando elServicePointManager (el cual es unclase estática) almacena en caché el resultado de la primera llamada al delegado. ¿Es posible restablecer esta clase? No me importa el rendimiento.

Gracias, O. O.

Respuestas a la pregunta(2)

Su respuesta a la pregunta