Articles of idisposable

Cosa succede se ritorno prima della fine dell’utilizzo della dichiarazione? Si chiamerà il dispose?

Ho il seguente codice using(MemoryStream ms = new MemoryStream()) { //code return 0; } Il metodo dispose() viene chiamato alla fine using parentesi di istruzione } giusto? Dal momento che return prima della fine MemoryStream using , l’object MemoryStream sarà smaltito correttamente? Che succede qui?

Unity 2.0 e gestione di tipi IDisposable (in particolare con PerThreadLifetimeManager)

So che questa domanda simile è stata posta più volte (ad esempio: qui , qui , qui e qui ) ma era per le versioni precedenti di Unity in cui la risposta dipendeva dalla class LifetimeManager utilizzata. La documentazione dice: Unity utilizza tipi specifici ereditati dalla class base LifetimeManager (definiti collettivamente come lifetime manager) per […]

Perché una class implementerebbe IDisposable esplicitamente anziché implicitamente?

Stavo usando la class FtpWebResponse e non ho visto un metodo Dispose. Si scopre che la class implementa IDisposable, ma lo fa esplicitamente in modo che è necessario prima eseguire il cast dell’istanza su IDisposable prima di chiamare Dispose: // response is an instance of FtpWebResposne ((IDisposable) response).Dispose(); Perché il progettista di una class come […]

Dovrebbe IDisposable.Dispose () essere reso sicuro per chiamare più volte?

Le implementazioni di IDisposable dovrebbero rendere Dispose () sicuro da chiamare più volte? O il contrario? Qual è l’approccio alla maggior parte delle classi .NET Framework? In particolare, è sicuro chiamare System.Data.Linq.DataContext.Dispose() più volte? Il motivo per cui lo chiedo è perché mi chiedo se questa protezione extra sia necessaria: public override void Dispose(bool disposing) […]

Linee guida per Dispose () e Ninject

Quindi, ho un metodo esposto da un servizio WCF in quanto tale: public GetAllCommentsResponse GetAllComments(GetAllCommentsRequest request) { var response = new GetAllCommentsResponse(); using(_unitOfWork) try { Guard.ArgNotNull(request, “request”); var results = _unitOfWork.CommentRepository.Get(d => d.Id > 0).ToArray(); //… Do rest of stuff here } catch (Exception ex) { response.Success = false; response.FailureInformation = ex.Message; Logger.LogError(“GetAllComments Method Failed”, […]

Distruggi manualmente gli oggetti C #

Sono abbastanza nuovo nell’apprendimento di C # (da Java e C ++ in background) e ho una domanda sullo smaltimento dei rifiuti manuale: è persino ansible distruggere manualmente un object in C #? Conosco l’interfaccia IDisposable , ma suppongo di avere a che fare con una class che non ho scritto e non la implementa? […]

ASP MVC: quando viene chiamato IController Dispose ()?

Sto passando attraverso un grande refactoring / velocizzazione di una delle mie applicazioni MVC più grandi. È stato distribuito in produzione per alcuni mesi e stavo iniziando a ottenere timeout in attesa di connessioni nel pool di connessioni. Ho rintracciato il problema fino a quando le connessioni non vengono smaltite correttamente. Alla luce di ciò, […]

Che cosa fa effettivamente Process.Dispose ()?

In class Process C # il class Process eredita dalla class Component che implementa IDisposable e quindi posso chiamare Dispose() su qualsiasi object Process . Devo davvero? Come faccio a sapere se devo davvero? Supponiamo di avere il seguente codice: var allProcesses = System.Diagnostics.Process.GetProcesses(); var processesNames = processes.Select( p => p.ProcessName ); // output process […]

Per cosa è IDisposable?

Se .NET dispone della garbage collection, perché è necessario chiamare esplicitamente IDisposable ?

Domande su Entity Framework Context Lifetime

Ho alcune domande sulla durata desiderata di un contesto Entity Framework in un’applicazione ASP.NET MVC. Non è meglio mantenere vivo il contesto per il minor tempo ansible? Considerare la seguente azione del controller: public ActionResult Index() { IEnumerable model; using (var context = new MyEntities()) { model = context.MyTable; } return View(model); } Il codice […]