問題タブ [modular-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - ASP.NET MVC & MEF - プラグ可能なアーキテクチャ
SO this postに従って PoC の作成を開始しましたが、非常に基本的なサンプルを機能させることができませんでした。
私がしたこと:
- 空のテンプレートと MVC 参照を使用して ASP.NET MVC プロジェクトを作成しました。
Bootstrapper
、CustomControllerFactory
およびCustomViewEngine
クラスと、対応する行をに追加しましたApplication_Start
。- MVC テンプレートを使用して ASP.NET MVC プロジェクトを作成しました。
Export
にとPartCreationPolicy
デコレータを追加しましたHomeController
。WebHost
モジュール プロジェクトをルート パス内の /Modules ディレクトリ内のフォルダーに公開しました。
うまくいかなかったもの:
- メソッド
CompositionContainer.GetExportedValue
は、1 つ以上の必要な型を読み込めなかったこと、およびLoaderExceptions
プロパティに関する詳細情報があることを示す例外をスローします。そのプロパティは、同じ例外のように見えるものの 77 個のインスタンスを含む配列です。Could not load file or assembly Antlr3.Runtime, Version=3.4.1.9004, Culture=neutral, PublicKeyToken=eb42632606e9261f or one of its dependencies.
FusionLog
プロパティで、問題がアセンブリ バージョンに関連していることがわかります ( こちらを参照)。 dependentAssembly
モジュールの宣言をweb.config
構成WebHost
ファイルにコピーすることで、これを「解決」するための回避策を見つけました。WebHost
ただし、モジュールのニーズに基づいて変更するべきではないため、これは避けたいと思います。- 回避策の後でも、機能しませんでした。ビューのレンダリング中に、次の例外がスローされました。
CS0234: The type or namespace name 'Optimization' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)