2016-08-04 3 views
1

私はASP.NetのC#を初めて使用しています。 VS 2015とNetCoreプロジェクトを使用しています。私はPHP(PHPStorm IDE)でコントロール名をクリックしてその定義に行き、それが何であるかを見るためにメソッド名を使用しています。方法にはどのように従う?

たとえば、コントローラのView()のVS 2015では、右クリック - >定義に移動する必要があります。しかし、定義はこれだけです:

... 
// 
// Summary: 
//  Creates a Microsoft.AspNetCore.Mvc.ViewResult object that renders a view to the 
//  response. 
// 
// Returns: 
//  The created Microsoft.AspNetCore.Mvc.ViewResult object for the response. 
[NonAction] 
public virtual ViewResult View(); 
... 

実際にはわかりません。これは閉鎖ソースなのでこれですか?

EDIT:

私はJetBrainsのから無料でdotPeekをインストールし、私が探していたもののために素晴らしい作品。それも、定義に行くためにコントロールがクリックあります

https://www.jetbrains.com/decompiler/

+2

[Visual Studioで[Go To Definition]を選択すると、Project以外のメタデータのみが表示されますerences](http://stackoverflow.com/q/13203346/1260204)? – Igor

答えて

2

これはクローズドソースだからではなく、そのコードが既にコンパイルされていて、単にDLLを使って参照しているだけです(実際のソースからデバッグするためにシンボルを明示的にロードしていない) 。

実際にメソッド呼び出しのチェーンとそのソースがどのように見えるかを確認するには、ASP.NET Core MVC repository on GitHubを参照するか、debug against the source itself as mentioned hereを試してみてください。

View()方法のためのあなたのコールスタック

あなたは舞台裏で起こっていると明示的にソース自体をデバッグする必要はありませんでした、実際に何を知りたいと思った場合、あなたはに沿って続くことができます以前にリンクされたGitHubリポジトリは、次の呼び出しを表示します。

  • Controller.csから

    • View()はあなたのパラメータを受け入れ、明示的にビュー/モデルのパラメータを取り、別のオーバーロードに渡します。 Controller.cs

      • から
    • View(name, model)はあなたのパラメータと、あなたがターゲットとしているビューからのデータを使用してViewResultオブジェクトを構築します。必要なサービスで

  • ViewResult()

    • ViewResult.csから引き出し、表示位置を解決し、アクションを実行しよう。
  • ExecuteAsync()ViewResultExecutor.cs

    • からに沿ってすべてのコンテキスト、ビューとデータを渡し、要求がなされて記録されます。 ViewExecutor.cs

      • から
    • ExecuteAsync()等、コンテンツ、すべてが正しく、実際の応答を構築し、適切なヘッダをユーザにそれを洗い流す処理する

  • を保証します
+0

リポジトリをナビゲートするのは非常に難しいですが、私は定義に移動するリンクがありません。しかし、これは何とか私が探していたものです。ありがとう – JorgeeFG

+0

ええ、定義に行くオプションは、大きなレポをナビゲートするための本当に素晴らしい機能ですが、これは役に立ちましたことを嬉しく思っています。 –

+0

1つの質問ですが、これはActionResultを使用しています:https://github.com/aspnet/Mvc/blob/683356ea59170185044f167d1a2006e79d5ad86a/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ViewResult.csただし、定義されているファイルは含まれていません。 https://github.com/aspnet/Mvc/blob/d4c7dc3a834edc507865816a59960c5b31f9b10c/src/Microsoft.AspNetCore.Mvc.Core/ActionResult.csどうすればそれを見つけることができますか? – JorgeeFG

1

はい、あなたはreflector.netのようないくつかのツールとそれを反映していない限り、その実装を見ることができるように文句を言いません。

通常、表示できるコードはソリューション内にあるコードだけです。

関連する問題