0

MVC コントローラーの LightInject をセットアップするときcontainer.EnableMvc();に、インジェクターのセットアップを呼び出すときにエラーが発生します。

エラー:

メソッドが見つかりません: 'Void LightInject.WebContainerExtensions.EnablePerWebRequestScope(LightInject.IServiceContainer)'

ソース:

public static void Register() {
    var container = new ServiceContainer();
    container.ScopeManagerProvider = new PerLogicalCallContextScopeManagerProvider();
    WebContainerExtensions.EnablePerWebRequestScope(container);
    container.RegisterControllers();

    container.Register<ISomeClass, SomeClass>();

    container.EnableMvc();
}

追加情報:

  • Visual Studio を使用してコードをローカルで実行しています
  • プロジェクトは4.5
  • 私のOSはWindows 10(フレームワーク4.5)です

過去に LightInject をセットアップしたとき、スコープの有効期間を手動で設定しましたが、一般的なセットアップと MVC 固有の例に関するドキュメントはその後変更されました。LightInject.Web を dep として含めないと問題になる可能性があると述べた 1 つのスレッドに出くわしましたが、LightInject.MVC の dep としてリストされ、プロジェクトの参照リストに表示されます。

MVC を有効にする前に、ライフタイムを手動で構成するか、このメソッドが使用可能であることを確認するために実行できる他の手順はありますか?

4

1 に答える 1

0

ここでの問題は、NuGet で LightInject.MVC をインストールしたことです。依存関係を次のようにリストします。

LightInject.Web (>= 1.0.0.4)
LightInject (>= 3.0.1.7)

これを使い果たした後、.Net 4.5 のバージョンの問題であり、非同期で問題が発生する可能性があります。LightInject.Web両方を手動でLightInject最新バージョンに更新することにしました。更新後、問題は解決しました。

これは、プロジェクト サイトにリストされている依存関係にバグとして追加します。

于 2016-09-21T17:38:32.963 に答える