.NET Frameworkのいくつかの内部クラスにアクセスしたいと思いますが、リフレクションを使用することはあまり読みやすく、楽しくはありません。クラスの周りに自動的にラッパーを生成するツールはありますか?
これらの内部クラスの周りに自動的にラッパークラスを生成するツールが存在するかどうかを知ることができますか?
.NET Frameworkのいくつかの内部クラスにアクセスしたいと思いますが、リフレクションを使用することはあまり読みやすく、楽しくはありません。クラスの周りに自動的にラッパーを生成するツールはありますか?
これらの内部クラスの周りに自動的にラッパークラスを生成するツールが存在するかどうかを知ることができますか?
Visual Studioでは、単体テスト用に独自のクラスをラッパーとして生成できます。これはシャドウクラスまたはシャドーアセンブリと呼ばれます。これは、フレームワーククラスに対しても同じことを行うために使用できます。
は、いくつかの手動の手順があります。
まず、あなたは(あなたのプロジェクトのために構築された影がしたいアセンブリの名前が含まれている必要があり、プレーンテキストファイルをあるframework.accessorファイルを作成する必要がありますアセンブリを参照してください)。例えば:
System.dll
その後、手動で.csprojファイルを編集して、このitemgroupを追加します。
<ItemGroup>
<Shadow Include="framework.accessor" />
</ItemGroup>
は、プロジェクトをビルドします。生成された* _Accessorクラスを使用して、内部クラスとプライベートメソッドにアクセスできるようになりました。
件名にはgood blog postがあります(この回答の情報もほとんどあります)。
ライブラリのプライベートメソッドとクラスを使用することは悪い習慣ですが、あなたの理由があると思います。
ありがとう、私はそれが悪い習慣であることを知っていますが、それは迅速かつ汚れたユーティリティアプリケーションのためのものです。 (具体的には、vb.netアプリケーションをC#アプリケーションに素早く移行するにはMicrosoft.VisualBasic.CompilerServicesにアクセスする必要があります) –