Apparentemente Chiudi e Disponi sono effettivamente gli stessi. Voglio essere in grado di chiudere e aprire la mia istanza ServiceHost senza doverla ripetere ogni volta. Qualche idea? Grazie.WCF: come interrompere myServiceHost.Close() dall'eliminazione dell'oggetto myServiceHost?
risposta
ServiceHost.Close è effettivamente identico a Dispose()
. Questo è vero, in generale, con tutti i tipi che hanno un metodo Close()
- Dispose()
è implementato in termini di Close()
.
CRONACA - ServiceHostBase
attrezzi Dispose()
esplicitamente tramite:
void IDisposable.Dispose()
{
base.Close();
}
Questo, di fatto, significa che quando si chiude la ServiceHost, avrete sempre Dispose() di esso. Non esiste un modo supportato per "riaprirlo" senza ricrearlo.
@Reed Copsey, grazie per la vostra risposta. Lasciatemi riformulare la domanda, posso "disabilitare" l'oggetto serviceHost senza chiamare Close? – Sam
@ Sam: No. Chiuderlo e ricrearlo quando si desidera "abilitarlo" di nuovo. –
Perché si desidera "disabilitare" il servizio Host? Il servizio dovrebbe essere sempre disponibile per i chiamanti. –
o per riformulare la domanda: come è possibile "disabilitare" myServiceHost senza chiamare Chiudi? – Sam