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?