Ho una classe Email che ha un metodo Send che accetta facoltativamente SmtpClient e invia un'email in modo asincrono utilizzando SendAsync . Se non viene fornito SmtpClient a questo metodo, crea un'istanza predefinita SmtpClient e la utilizza per inviare l'e-mail. All'interno della funzione Send , fornisco un SendCompleted callback che dispone del MailMessage e del default SmtpClient se non ne è stato fornito uno al metodo.
Quindi, quando fornisco SmtpClient , come faccio a smaltirlo?
Non posso eliminarlo all'interno di Send perché potrebbe essere usato per inviare altre email, inoltre suppongo che sia la responsabilità della cosa che ha istanziato il passato in SmtpClient a eliminarlo di nuovo. È possibile aggiungere più callback SendCompleted al SmtpClient che viene eseguito uno dopo l'altro?