---コメントに従って編集---
このスクリーンショットは、アプローチできる可能な構造を示しています。もちろん、用途に合わせたデザインも承ります。

ControllerLib
メイン プロジェクトにService Reference
(スクリーンショットには示されていませんが、SecondMVCApplication プロジェクトの References フォルダー内にある必要があります)として取り込まれる別のクラス ライブラリ プロジェクトも同様です。2 つのコントローラー ファイル (HomeController.cs
とLocationController.cs
は Controller クラスを実装したコントローラー ファイルであり、テンプレートを使用して新しい MVC4 アプリケーションを作成するときのコントローラー ファイルと同じものです)
SVCファイルがあるかどうかについての質問です。番号。MVC 4 では、アプリケーションが 1 つのプロジェクトであるか、複数のプロジェクトの組み合わせであるかに関係なく、SVC ファイルのようなものはありません (私が間違っていない限り)。内には、ルーティング URL を保持するSecondMVCApplication
と呼ばれるファイルがありRouteConfig.cs
、サービス リファレンスを追加し、そこにコントローラ関数が存在する限り、. コードが実行されます。また、私が示したサンプルのスクリーンショットにもWebApiConfig.cs
ファイルが含まれています。必要に応じて、そのファイルを使用してモバイル用の API を実行できます。そのため、レギュラーRouteConfig.cs
はウェブサイトのリクエストをWebApiConfig.cs
処理し、API リクエストを処理します。
注:モデル プロジェクトを別のプロジェクトとして使用している場合 (これはM -VC プロジェクトであるため、使用することはわかっています...DUH !!)。接続文字列を web.config メイン プロジェクト (この場合は ) 内に配置してくださいSecondMVCApplication
。この問題を解決しようとして、3 日間 (それぞれ 8 時間) もこの問題に悩まされていたことを覚えています。あなたがそれに遭遇しないことを願っています。
---編集終了---
あなたの質問に対する次の回答は、主に私の知識に基づいており、すべてのユーザーに当てはまる場合とそうでない場合があります。
- MVC 4 Web-Api Service はフロント エンドとしての機能ですか?
これは見方次第です。通常、Web API サービスは、モバイル アプリやデスクトップ アプリなどのさまざまなプラットフォームにデータ ペイロードを提供するバックエンド サービスの作成に適しています。ただし、MVC4 インターネット アプリケーションには、フロントエンドの側面、つまりエンド ユーザーに表示されるビューが含まれます。
- 基本的なコンソール アプリだけでサービスを利用するにはどうすればよいですか?
私の知る限り、これを行うには2つの方法があります。1 つは、API をサービス参照として使用する場合です。もう 1 つは、HTTP 操作を使用することです (これについては、HTTP クライアントに関する質問で言及し、Service Reference メソッドを使用してこの回答を予約します)。
これは、アプリケーションの実行方法によって異なります。私が言ったように、それが Web サイトの場合、MVC パターンは何もする必要はありませんが、モデル、ビュー、およびコントローラーはすべて、サービスを使用せずに連携するように設計されています。
ただし、質問へのコメントで述べたように、それが大きなアプリケーションである場合は、アプリをモジュール化して機敏にするために、それらをさまざまなプロジェクトに分割する必要があります。したがって、別のService Library
. Service Library
道を進む場合は、Add Reference
オプションを利用して、API/プロジェクト/Whatever-you-call-it をプロジェクトに取り込むだけです。(このために、私は通常、すべてのプロジェクトを 1 つのソリューション内に配置し、ビルド スクリプトを作成するのが面倒なので、Visual Studio にビルド順序を管理させます)。
同様に、コンソール アプリで Web サービスを使用する場合にも、同じロジックを適用できます。
- それを消費する唯一の方法は HttpClient を使用することであることがわかりました。他の方法はありますか?
Web API を使用する 1 つの方法は、HTTP を使用することです。http リクエスト ヘッダーの書き方と http レスポンスの処理方法を知っていますか。もしそうなら、これは私が言及した2番目の方法です。URL を介して Web サービスを呼び出し、データを取得して、あらゆる作業を行います。コンソール アプリで http を使用するための答えがNOである場合は、次の投稿をご覧ください: C# コンソール アプリケーションを使用して HTTP ポスト リクエストを作成し、応答を受け取る
- 例として、web-api が post メソッドのオブジェクト「タスク」を要求している場合、どうすればオブジェクト「タスク」を埋めて web-api にポストすることができますか?
以前の回答でこれに間接的に回答したと思います(HTTPの道を進むと仮定して)。そうでない場合は、コメントしてください。リソースが見つかるかどうかを確認します.
- Web サービスは内部で使用されます。Web API サービスを使用する価値はありますか?
私は質問へのコメントでこれに答えました。説明が必要かどうか尋ねてください。
これがすべて役立つことを願っています。