2012-02-19 5 views
3

Join()拡張メソッドの内部をどのようにデバッグできますか?IEnumerableの内部デバッグ<T> .Join()

私は、チェーンメソッド呼び出しの間のものをデバッグ/表示する方法を尋ねることはありません。代わりに、Join()メソッドがmojoを動作させるために使用する中間値または内部の内側/外側のシーケンスを参照したいと思います。私は持っています:myThings.Join(a bunch of lambdas);私のkeySelectors正しいデータを返すようです。しかし、私のresultSelectorは呼び出されることはないので、シーケンス自体を見てデバッグしたいと思っています。

私は誰かがresharperをお勧めするように感じます(私は150ドルの外に出ることはありませんので、無料の選択肢のみを提供してください)。

"私はJoin()の内部をデバッグするにはどうすればよいですか?"という質問に答えてください。

答えて

2

Joinがどのように実装されているかを概念的に見るには、EduLinq:"Reimplementing LINQ to Objects: Part 19 - Join"の一部としてJon Skeetの再実装を見てください。おそらく生成されたコードを主演するだけでなく、何が起こっているのかについて、より多くの洞察を与えるからです。

まだ無料のツールを使用して生成されたコードを逆コンパイルする場合は、次のようになります。 JustDecompileを無料でご利用いただけます。

+0

+1と両方のリンクに感謝いたします。私はデコンパイラを使用し、カバーの下を見ることができましたが、私はあきらめて巻き上げました。最後に、Jon Skeetの素早く汚れた実装をコピーし、Join()メソッドを実行してバグを見つけました。ありがとう! – dFlat

1

私はVSにデバッグオプションがあると思います.netのソースコードをデバッグすることができます。デバッグ - >オプション - >一般

0

Reflector .NET 7以降を使用すると、フレームワークタイプをデバッグできます。基本的に、デコンパイルされたバージョンのフレームワークをデバッグしています。これは素晴らしい学習方法です。

+0

.Net 7?私はいくつかのバージョンの背後にある必要があります... – dFlat

+0

.NET Reflectorは、Red-gateのツールです(http://www.reflector.net/を参照)。フレームワークを含む外部アセンブリのデバッグをサポートする無料トライアルがありますソース。 – jessehouwing

+0

v7は今より意味をなさない。先端に感謝します。私は裁判を期限切れにするために、さらに別のアドインをインストールすることに躊躇しています...参考に感謝します。 – dFlat

関連する問題