以编程方式读取资源字符串

我周围有6个dll(没有源代码)。 它们不包含任何逻辑,只包含包含字符串表的.resx文件。

有没有办法我可以从每个dll的字符串表中提取Id和值并将其导出到文本文件?

知道程序集名称和资源文件,您可以使用reflection加载它。

// Resources dll var assembly = Assembly.LoadFrom("ResourcesLib.DLL"); // Resource file.. namespace.ClassName var rm = new ResourceManager("ResourcesLib.Messages", assembly); // Now you can get the values var x = rm.GetString("Hi"); 

要列出所有键和值,可以使用ResourceSet

 var assembly = Assembly.LoadFrom("ResourcesLib.DLL"); var rm = new ResourceManager("ResourcesLib.Messages", assembly); var rs = rm.GetResourceSet(CultureInfo.CurrentCulture, true, true); foreach (DictionaryEntry r in rs) { var key = r.Key.ToString(); var val = r.Value.ToString(); } 

如果您无权访问资源库,您可以通过Leo提到的Reflector查看名称空间,类和其他所有内容。

我不知道它是否可行,但尝试使用.Net Reflector http://reflector.red-gate.com/