.NET存储的内部资源字符串在哪里

时间:2018-02-02 15:47:23

标签: c# .net

我正在反编译一些.NET代码以诊断问题,但对象非常大。为此,我一直试图看看.NET会在哪里引发我正在寻找资源字符串的错误,因为异常类型是相当通用的,但错误消息特定于最终问题我'我正在调查。

反编译代码,我看到它使用字符串资源管理器来提取文本,但是无法将资源键与文本匹配,我无法从错误消息中追溯到反编译代码中的点。

例如,在反编译代码中生成如下例外:

throw new ArgumentOutOfRangeException("value", SR.GetString("net_io_timeout_use_ge_zero"));

我在哪里可以找到.NET的本地化错误文本和相关的资源键(例如"net_io_timeout_use_ge_zero")?

我尝试在System.dllSystem.Net.dll上使用ResHacker(我正在调查对象的程序集),但这两个都没有产生任何结果。同样地,虽然在en-US下有%windir%\Microsoft.NET\Framework\v4.0.30319的文化子文件夹和等效的64但是这些文件没有显示任何文字栏,但System.dll中的装配详情和一些图标

1 个答案:

答案 0 :(得分:0)

这真的是PetSerAl的答案(如果他发布了一个,我会将其标记为这样)但是要查找资源字符串,您可以使用ILSpy来加载程序集,并且可以在Resources节点就像这样;

Resources Node

更进一步,虽然ILSpy确实列出了资源,但它没有提供直接搜索资源的方法。保存会保存不易读取的编译细节(有一个github请求)。在此期间,您可以通过选择单个项目选择网格内容, CTRL + A 以选择全部, CTRL + C 将网格复制到剪贴板。从那里你可以粘贴到Excel或记事本之类的东西,并搜索你需要的文本。