从.NET程序集中获取所有静态(实习)字符串(dll)

Ian*_*ose 14 .net string internationalization low-level

我希望获得.NET程序集中使用的所有字符串的列表,包括局部变量设置为"静态"值,传递给方法的参数,设置为的字段等.

我记得很久以前我读过的东西,.NET程序集包含了它所使用的所有字符串的表(或者它们可以被"实习") - 或者我只是在做梦?

使用.NET Reflector是一个很好的理想(感谢thijs),如果没有人提出已经编写的工具,我也会看看它的API.

(这是我可以编写一个工具来检查我们没有错过任何应该翻译的字符串.我可以处理C#源代码,但是我将不得不处理分裂在多行上的字符串等)

我想,我希望排除传递给CodeFlowException()等的字符串,所以这已经变得越来越复杂了.

PS:如果你能想到一套更好的标签,请重新提出这个问题.

Mit*_*eat 14

您可以使用SysInternals Strings工具查看可执行文件和目标文件中的字符串.


Ian*_*ose 0

最后我写了一个非常简单的 C# 解析器,它在源代码中找到了字符串。这解决了我遇到的问题,并让我将 \xe2\x80\x9ccomments\xe2\x80\x9d 添加到字符串中以帮助翻译人员。

\n\n

这些注释只是从 C# 注释中读取的,格式为 \xe2\x80\x9cmagic\xe2\x80\x9d

\n\n

(抱歉,解析器不够好,无法允许其他人使用它,它只能在我的 C# 代码库上运行)

\n