質問

私はどこで見てもコンテキストを見始めています。 ASP.NET MVCには、ControllerContexts、RequestContexts、httpContexts、formcontextsがあります。エンティティフレームワークには、ObjectContextsとdbcontextsがあります。 ninjectにはninject.activation.icontextがあります。

一体何が文脈とは何ですか?

役に立ちましたか?

解決

まあ、それは一種の依存関係の噴射のことであり、人々が「ここにあなたが操作する環境がある」と言うことができるようにすることができます。一般に、彼らは当然のことながら、それが何であれ、「文脈」を提供します。つまり、いくつかの状態。おそらく、URL、おそらくいくつかのHTTPヘッダーなど。

ASP.NETはテストに焦点を当てているため、これらのアイテムを「交換」するため、多くのことを見ています。 自分の コンテキストの実装(つまり、独自の状態を定義します)。テストを適切かつ正常に実行できるようにします。

あなたが何を疑問に思っているなら 環境によって「与えられた」データのさまざまなデータです。すなわち今日です オフィスでは寒い. 。これはの一部です . 。しかし、おそらく私はそれがあるときに私のテストを実行したいです オフィスで暑い, 、だから私はサブクラス化することができるでしょう OfficeContext 適切な方法/などのために適切な状態を返します。

他のヒント

IMO、コンテキストは、いくつかの(おそらく可変)状態を示します なにか. 。通常、コンテキストはクロスカットレイヤーであり、多くの場合、レイヤー全体でドメイン中立データを運びます。

コンテクスト あなたが現在していることの範囲外の情報ですが、それは不可欠な意味を持っています。

誰かがあなたに英語の言葉「フライ」の意味を尋ねると想像してください。複数の定義があります:賑やかな小さな検査または空気を滑る持続的な行為。正しい答えを与えるためにあなたは コンテクスト どちらの定義を探しているかを教えてくれます - 彼らはDipteraまたはThe Wright Brothersについての本を読んでいますか?

コンピューティングについては、HTTPハンドラーを実装しているとします。他のことを知らずに応答を生成できるかもしれません(こんにちは、世界!)が、 コンテクスト HTTP要求情報 - リクエストパラメーター、許容可能なエンコードタイプなどは何でしたか。ユーザーエージェントに意味のある応答を生成できます。

それらは、Telnet/SSHセッションであなたの環境変数とプロファイル設定のようであると考えています。さまざまな設定を束ねて、実行しているコンテキスト(つまり環境)に基づいてツールが異なる機能を実行できるようにします。

IMO、それは単なる別の議論です。私の(限られた)経験では、それが呼び出しクラスであることを見てきました。あなたが知っている必要があります あなたはあなたがしていることをするためにしています 良い. 。コンテキストは、あなたがしていること、何が起こっているのか/実行していることです。

上記の答えは概して非常に良いです。私が追加する唯一のことは、その最も一般的な使用法は、システムの層を下げるための「接着剤」としてであるということです。一般に、問題のシステムはある種の「コンテナ」システムであり、コードはあなたから多くの実行の詳細を隠す大きなコードベースの内部で実行されます。コンテキストは、その大きなシステムへの抽象化されたインターフェイスです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top