CLR类中的内存泄漏

use*_*528 5 .net clr

我有内存泄漏并将其追溯到CLR内的这个字段:

Microsoft.CSharp.RuntimeBinder.RuntimeBinder.s_instance.m_semanticChecker.globalSymbolContext.GlobalSymbols.tableGlobal.dictionary

可以使用此规范在调试器中查看:

((Microsoft.CSharp.RuntimeBinder.Semantics.LangCompiler)(Microsoft.CSharp.RuntimeBinder.RuntimeBinder.s_instance.m_semanticChecker)).globalSymbolContext.GlobalSymbols.tableGlobal.dictionary

在执行应用程序期间,该字典无限增长.

任何想法,这个领域究竟用于什么,以及它为什么会成长?

UPD没有动态创建类型,至少在我的代码中

use*_*528 4

到目前为止我找到的最佳答案:
问题发生在 Excel VSTO Range.Style 属性周围的某个地方(它使用动态数据类型)。
每次这段代码

range.Style == null
Run Code Online (Sandbox Code Playgroud)

运行时,它会使绑定程序消耗更多内存。
但是如果我像这样重写这段代码

(Style)range.Style == null
Run Code Online (Sandbox Code Playgroud)

然后问题就消失了。

UPD 向 Microsoft 报告了此问题https://connect.microsoft.com/VisualStudio/feedback/details/861770/memory-leak-when-using-excel-add-in-api#tabs