
前提・実現したいこと
.NET Framework 4.5.2、MVC5でWebサイトを構築中です。
View等を持つプロジェクトと共通処理やビジネスロジックを持つプロジェクトを分けたソリューション構成となっています。
このサイトを参考にGlobal.asax上にサイト共通のプロパティを持たせ、
そのプロパティを共通処理やビジネスロジックで参照しようとしています。
発生している問題・エラーメッセージ
Viewやcontoller側から共通処理やビジネスロジックを使用している為、
View等を持つプロジェクト(下図TestMVC)から共通処理等のプロジェクト(下図BusinessLogics)を参照する依存関係を持っています。
この為、共通処理等のプロジェクト側からView等を持つプロジェクトへの参照設定が循環参照で行えず、
Global.asax上のプロパティ(下図Global.asax.vb内のTestVar)が共通処理等から見えない状態です。
このような構成のソリューションの場合、どのようにサイト共通のプロパティを持たせるべきでしょうか?
試したこと
Application変数の利用
System.Web.HttpContext.Current.Applicationを使用することで
サイト共通のプロパティは持てました。
しかし、こちらはデータ型の指定できず、
参照先を直接把握することもできませんでした。
VBNET
1'書き込む場合 2HttpContext.Current.Application.Lock() 3HttpContext.Current.Application("property_test") = "test" 4HttpContext.Current.Application.UnLock()
テスト用ソリューションの作成
簡単なソリューションを作成して確認しました。
新しいプロジェクトの作成で、ASP.NET Webアプリケーションを選択してTestMVCソリューションを作成
(手順再現の為、図ではWebApplication1)
作成されたソリューションに、共通処理等を実装するBusinessLogicsプロジェクトを
クラスライブラリとして追加
Controllers等から共通処理を使用する為、TestMVCにBusinessLogicsプロジェクトの参照を追加
作成されたTestMVCプロジェクトのGlobal.asaxに
サイト共通のプロパティとしてTestVarを追加
BusinessLogicsプロジェクト側のクラスから、Global.asaxに追加したTestVarを参照したいが、
BusinessLogicsプロジェクトからTestMVCへの参照設定ができず、
参照することができない






回答1件
あなたの回答
tips
プレビュー