我如何查看 .NET 实习字符串

4 .net string

在 CLR 2.0 中,有什么方法可以查看所有已被 intern 的字符串?我查看了 CLR Profiler API,但看不到任何 API 调用来监视字符串何时被插入。另外,实习字符串的范围是什么?卸载应用程序域时是否会收集实习字符串,或者它们是否跨越应用程序域?

jri*_*sta 5

字符串在 .NET 2.0 中默认被插入,但是哪些字符串被插入以及何时被插入可能相当复杂。以下文章可能会阐明这个概念:

http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx

此外,关于您的 API 调用...确保您正在使用优化的构建进行测试。默认情况下,调试版本可能不会启用字符串实习,这可能是您看不到它发生的原因。