Estouro de memória: Tendo um número crescente de Microsoft.CSharp.RuntimeBinder.Semantics

No momento, estamos caçando alguns vazamentos de memória em nosso aplicativo. Ao executar alguma operação (carregar e fechar um projeto dentro de nosso aplicativo), sabemos que a memória aumenta sempre um pouco.

Já encontramos muitas delas, mas agora as 10+ classes mais crescentes são (de acordo com a nossa ferramenta, ANTS Memory Profiler 8.2):

Microsoft.CSharp.RuntimeBinder.Semantics.SYMTBL + KeyMicrosoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbolMicrosoft.CSharp.RuntimeBinder.Semantics.CONSTVALMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSCONSTANTMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSCLASSMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSTYPEOFMicrosoft.CSharp.RuntimeBinder.Semantics.EXPRLISTMicrosoft.CSharp.RuntimeBinder.Semantics.MethWithInstMicrosoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResultsMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSMEMGRPMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSCALLMicrosoft.CSharp.RuntimeBinder.Semantics.PRESSWRAPMicrosoft.CSharp.RuntimeBinder.Semantics.AggregateDeclarationMicrosoft.CSharp.RuntimeBinder.Semantics.Scope

Infelizmente, não sei o que é isso, então é um pouco difícil para mim descobrir como / o que devo liberar.

Eu verifiquei a árvore da instância, mas ela vai até o fim com as coisas da Microsoft.

A questão é que, quando fazemos o "Abrir / fechar" de um projeto, passamos por muito (a maior parte) do nosso código.

EDITAR Uma parte do nosso aplicativo usa odynamic palavra-chave para alguns recursos, ele pode estar vinculado. As aulas aqui não são descartáveis, devo fazer algo especial com elas?

EDIT 2

Tenho certeza de que isso está relacionado ao meudynamic coisas, parece que o C # cria um cache ao usar dinâmico. Mas atualmente não tenho idéia do porquê de crescer (eu carrego as mesmas classes o tempo todo e terei exatamente a mesma assinatura o tempo todo), nem como limpar isso.

questionAnswers(2)

yourAnswerToTheQuestion