0

我的应用程序中有一个很大的 Resources.resx 文件,我正在访问它们

MyResources.GetString("res1");

如何检查 .resx 文件中的每个条目“条目”是否存在至少一个调用MyResources.GetString("Entry")(这意味着每个资源都在某处使用)

,以及如何检查每个调用是否MyResources.GetString("Entry")存在名为“Entry”的资源(没有调用不存在的资源)?

4

1 回答 1

0

发现未使用的资源是可能的,但很繁琐:

(1) 确保代码分析警告 CA1811 已打开。

(2) 在您的 Resources.Designer.CS 文件(或其他适用的设计器文件)中注释掉以下行:

[global:: System.CodeDom.Compiler.GeneratedCodeAttribute( ...
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global:: System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

(3) 通过在“class”前面加上“static”二字,将类改为静态类:

 internal static class Resources {

(4) 注释掉默认构造函数。

(5) 注释掉任何“InternalsVisibleTo”行(这些通常在“AssemblyInfo.cs”中)。

(6) 编译你的程序。现在应该警告您任何未使用的资源。

(7) 删除​​你未使用的资源。(请注意,更改任何资源都会重新生成 Resources.Designer.cs 文件。)

我不确定如何找到未定义的资源。

于 2013-05-14T10:54:53.790 回答