6

私は非常に大規模なコード ベースで作業しており、今日IL code、通常のclass.

出力される IL コードを含むプロジェクトは、Service Locator MSDN Desctiptionの実装でした。

これを行うことの利点は何ですか?また、言語を使用するのではなく、なぜこれを行うのでしょうか?C#

4

2 に答える 2

14

通常、これは実行時にのみ利用可能な情報を使用して、リフレクションを使用するオーバーヘッドを回避するために行われます。

次に、リフレクションを使用して、リフレクションを使用せずに、与えられたデータを直接操作する新しいコードを作成します。

利点:

  • パフォーマンス

短所:

  • デバッグが難しい
  • 正しく理解するのが難しい
  • 後でコードを読むのが難しい
  • 急な学習曲線

したがって、これに着手する前に、本当に価格に見合う価値があることを確認する必要があります.

これは一般的な回答であることに注意してください。あなたが遭遇した特定のケースでは、実際にコードを見なければ、なぜこれが行われたのか、どの特定の利点(または欠点)があるのか​​ を答える方法はありません.

于 2013-07-30T12:15:19.163 に答える
3

これには多くの用途があります。
より頻繁に使用されるシナリオの 1 つは、オンザフライでコードを変更/挿入するためのものです
。.NET CLR インジェクション: 実行時に IL コードを変更する


良い使い方を理解するのに役立つ良いチュートリアルは次のとおりです: Dynamic... But Fast: The Tale of Three Monkeys, A Wolf and the DynamicMethod and ILGenerator Classes


幸運を

于 2013-07-30T12:24:57.100 に答える