1

VS2008 に次のコード行があります。

    VirtualPathData virtualPathData = 
        RouteTable.Routes.GetVirtualPath(_viewContext.RequestContext, 
        "Home", 
        pageLinkValueDictionary);

このメソッドをデバッグGetVirtualpath(..)して、何をしようとしているのかを確認したいと思います。

MS シンボル サーバーからシンボルを取得する必要があると想定しています。

私がしたことは

  • オフにする 自分のコードのみを有効にする
  • ソースサーバーのサポートを有効にする
  • デバッグ時に [モジュール] ウィンドウを表示する (正しいモジュールを手動でロードするため)

デバッグモードでコンパイルし、その行にブレークポイントを置き、デバッグ実行します。行にヒットしたら、 MS Symbol サーバーSystem.Web.Routing(..)から手動で読み込みます。これは機能し (pdb はローカルにダウンロードされます)、この行にステップインすると、いくつかの Dissassemler コードに移動します :(

誰かが私が間違っていることを見ることができますか?

4

4 に答える 4

3

シンボル ファイルがダウンロードされたからといって、そのファイルのソースが利用できるわけではありません。pdb にもソース インデックスを作成する必要があります。

スコット・ガスリーの発表から:

まず、.NET 基本クラス ライブラリ (System、System.IO、System.Collections、System.Configuration、System.Threading、System.Net、System.Security、 System.Runtime、System.Text など)、ASP.NET (System.Web)、Windows フォーム (System.Windows.Forms)、ADO.NET (System.Data)、XML (System.Xml)、および WPF (System. 。ウィンドウズ)。今後数か月のうちにライブラリを追加する予定です (WCF、Workflow、LINQ を含む)。ソース コードは、Microsoft Reference License (MS-RL) の下でリリースされます。

System.Web.Routing はここに含まれていないようです。

ただし、MVC Sourceをダウンロードすると、そのソースに対してダウンロードした pdb を使用できるはずです。

于 2009-05-18T07:57:38.063 に答える
1

私は誰かがこれを言ったためにすでに気分を害しているのを見ましたが...

何が起こっているのかをソース レベルで把握できるようには見えませんが、なぜ何かが機能しないのか (そして StackOverflow が役に立たないのか) について本当に答えが必要な場合は、Reflector.NETを使用して、ソースから C# コードを取得します。コンパイルされたアセンブリ (dll または exe) はかなり良いオプションです。このツールは、経験豊富な .NET 開発者にとって非常に使いやすく、何が起こっているかについて非常に優れた洞察を提供できます。

.NET の最先端で働いている私たちの多くは、.NETを使用する必要があります。これは、他に高速な方法がないことが多く、MVP や Microsoft 側の接続を持たない人にとっては、通常、 .NET が「裏話」を入手する唯一の方法だからです。

于 2009-05-18T19:49:58.940 に答える
0

そのためのシンボルファイルをダウンロードしたことに少し驚いています。前回見たときは、フレームワークの小さなサブセット (主に 2.0) のシンボルしかありませんでした。現在、このコードに問題がありますか? その場合は、例外/予期しない動作の詳細を投稿してください。単純に興味がある場合は、 a:ドキュメントを読むか、b:リフレクター付きのスヌープを使用してください(警告: " IANAL ")。

于 2009-02-15T08:26:39.880 に答える
-3

.NET について話しているように見えるので、実際に表示されているのは IL バイト コードです。Microsoft が .NET のソース コードを含むシンボルをリリースしているとは思わないので、VS はあなたを助けることができません。

.NET Reflector を使用して、関数の動作を調べます。

于 2009-02-15T06:09:49.610 に答える