4

従来の asmx Web サービスを MVC3 環境に組み込む最良の方法を探しています。カーネル/コンテナーを 2 つの間で共有したいと思います。

以前は、ASP.NET Web フォームを使用して、次のものを使用できました。

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service : WebServiceBase
{
    [Inject]
    public IContextProvider ContextProvider { get; set; }
...

これは、古い Ninject.Web を使用して、WebServiceBase、PageBase などの間で共有された KernelContainer を使用してカーネルを共有しました。

これで、Ninject.Web.MVC を使用する MVC3 アプリケーションができました。同じカーネル/バインディングを使用して、同じ空間で機能する古い Web サービスが必要です。このようなセットアップを実行するための情報を見つけることができませんでした。

(asmx Web サービスを使用しない場合を除いて) 私に指摘できるアイデア、サンプル、または投稿を誰かが持っていますか?

4

1 に答える 1

4

MVC フレームワークは、Ninject for MVC と統合する DependencyResolver をサポートしています。ASMX Web サービスのカスタム ファクトリを定義することはできませんが、次の操作を実行できます。

public class Service : WebService
{
  public IContextProvider ContextProvider {get;set;}

  public Service()
  {
    ContextProvider = DependencyResolver.Current.GetService<IContextProvider>();
  }
}

サービスの構築中に依存関係を注入することはできませんが、コンストラクター内で自分で解決することはできます。

于 2012-09-12T01:01:31.297 に答える