回答:
まず、「ソリューション内のエラーの分析」を有効にします(ステータスバーのResharperアイコンを右クリックします)。
次に、ソリューションノードを右クリックし、[コードの問題を検索]を選択します。「検査結果」ツールウィンドウで、「問題のタイプ」ごとにグループ化し、「タイプまたはタイプメンバーは使用されません」を探して、未使用のクラス(およびさらに多くの未使用のシンボル)を取得します。
2番目のオプション(「ソリューションでのエラーの分析」を有効にした後)は、未使用のクラスに移動し、Alt + Enterを押し、「「タイプまたはタイプメンバー...」検査のオプション」を選択します。このタイプのすべてのコードの問題を見つける| ソリューション全体。
@ulrichcによるソリューションは完璧に聞こえ、CastleやNinject などの依存性注入フレームワークを使用していないが、DIコンテナ[Castle]などを使用していて、次のようなものがある小規模からミドルウェイトのプロジェクトでうまく機能します。
public class IoC
{
private WindsorContainer _container;
private IoC()
{
_container = new WindsorContainer();
}
public static void RegisterFromAssembly(Assembly assembly, string classEndsWith, LifeTime lifeTime)
{
var lifestyle = ConvertLifeStyleType(lifeTime);
_container.Register(AllTypes.FromAssembly(assembly)
.Where(type => type.Name.EndsWith(classEndsWith))
.WithService.AllInterfaces()
.Configure(c => c.LifeStyle.Is(lifestyle))
.WithService.FirstInterface());
}
}
ご覧のとおり、RegisterFromAssemblyはアセンブリ内のすべての型を調べ、盲目的に[メソッドパラメータに基づいて]実行時にそれらをコンテナに追加します。
コンテナー内で登録または解決されたタイプのナビゲーションを提供するAgent Mulderプラグインのようなものが必要になります。これも視覚的には[おそらく設計時に]機能するかもしれませんが、未使用のクラスを削除するたびに、アプリケーション[すべての可能なレイヤー]内のすべてのテストを実行して80%が安全であることを確認しない限り、確実ではありません。話の教訓:Resharperにとってクラスは未使用に聞こえるかもしれませんが、依存性注入を使用すると復活する可能性があります。