さて、次のデータで何が起こっているのか少し混乱しています。
アプリケーションには次の構造があります。
- Portal.Web - 基本的にすべてのビュー、スクリプト、css、および HTML ヘルパー拡張メソッドを含む MVC 3 Web アプリ
- Portal.Core - 基本的にビジネス オブジェクトであるクラス ライブラリです。すべてのモデルがこのプロジェクトに含まれています。
- Portal.Data - NHibernate 構成と DTO クラスを含む別のクラス ライブラリ。
使用方法は次のとおりです。コントローラーでは、Portal.Core にあるモデルを呼び出します。このモデルは、Portal.Data を呼び出すことによって生成されます。したがって、基本的に Web はデータを見ることができません。
キャッチは次のとおりです。たとえば、コントローラーで、次のように Client という新しい DTO オブジェクトをインスタンス化しようとするとします。
var client = new Client();
クライアントが何であるかがわからず、 using を指定してもうまくいかないことが予想されます。それはいいです。
しかし、ビューでまったく同じ行を実行しようとすると、Resharper は使用をビューに追加し、その後は問題なく、プロジェクトが実行され、ビューで DTO クラスを使用できます。
それで問題は、これはなぜですか?私は後輩がビューで DTO クラスを使用するのを止めようとしているので、意図的に Web のデータ プロジェクトへの参照を削除しましたが、まだクラスを使用できます。誰かが光を当てることができますか?