2

MEF と MVC を使用してプラグ可能なアーキテクチャを構築しようとしています。モジュールのロードを担当するMVCアプリケーションがあります(他のmvcプロジェクト)。アイデアは、モジュールをコピーしていくつかのフォルダーに貼り付けることであり、モジュールがポップアップするはずです。

とにかく、エクスポートされた (MEF エクスポートに関して) API コントローラーをモジュール アセンブリから取得したかったのです。

[Export("TestModuleApi", typeof(IHttpController))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class TestModuleApiController : ApiController
{
    [HttpGet]
    public object Get()
    {
        return "HomeApi";
    }
}

どうすればそれを達成できるかについて、多くの情報を見つけることができませんでした。

ただし、 のカスタム実装を使用して「通常の」mvc コントローラーを取得することができましたIControllerFactory。このCreateControllerメソッドでは、 のエクスポートされたオブジェクトから要求されたコントローラーを取得しますCompositionContainer。しかし、は( )ではなく、オブジェクトIControllerFactoryのみを提供しています。IControllerIHttpControllerApiController

カスタムを実装しようとしましたIHttpControllerActivatorが成功しませんでした。モジュールから URL をブラウズしようとすると (のように)、404 が返され、カスタム アクティベーターのメソッドapi\TestModuleApi\Getにさえアクセスできません。Create

どんな助けでも大歓迎です。

4

0 に答える 0