L'istanza di un contesto Spring.Net all'interno di un metodo statico provoca una perdita di memoria

StackOverflow https://stackoverflow.com/questions/1640582

  •  08-07-2019
  •  | 
  •  

Domanda

Ci sono passato di recente e mi chiedevo se qualcuno là fuori potesse darmi una buona spiegazione. Stavo facendo un po 'di refactoring e ho creato un contesto primaverile per prendere un servizio configurato da un file di configurazione incorporato in questo modo:

var myService =                 nuovo XmlApplicationContext (" assembly: //MyAssembly/MyNamespace/MyService.config") .GetObject (                     " myService ") come MyService;

Normalmente questo sembra funzionare bene, ma in questo caso, poiché era all'interno di un metodo statico, causava una perdita di memoria e voglio capire perché, in futuro, eviterò questo genere di cose. Il metodo non avrebbe dovuto essere statico in primo luogo, ma questo è un altro problema. Normalmente, evito di farlo e inietto i miei servizi direttamente su una pagina ASP.Net tramite web.config, ma in questo caso è stato opportuno, quindi non preoccuparti di dirmi che sto facendo tutto sbagliato, lo so. ; -)

Max

È stato utile?

Soluzione

Se hai un metodo statico e mantieni l'handle dell'istanza myService, verrà condiviso con la mappa singleton di Spring.NET e tu. Finché hai il riferimento, anche il contesto dell'applicazione rimarrà. Anche se questo non spiega completamente la situazione se la memoria è in costante crescita a meno che tu non mantenga tutti gli oggetti creati nella tua classe statica ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top