4

Web アプリケーション内に含まれる一連の Web API があります。

Web アプリの発行フォルダーの下にある新しい dll にそれらを分離しようとしています。

分離後、次のルーティング コードを使用すると、個々の API 呼び出しが成功します。

しかし、元は Web アプリケーションの Application_Start() 内にあった Ninject 初期化およびルーティング レジスタのような初期化コードを、新しい dll 内に配置する必要があります。最初のAPIが呼び出される前に関連するコードを呼び出すことができるようにするにはどうすればよいですか?

routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
4

1 に答える 1

1

外部アセンブリに登録されたルーティングといくつかのnInjectコードもまったく問題ないと思います。

ただし、コントローラーが外部アセンブリにある場合に問題が発生する可能性があります。詳しくはこちらをお読みください: http://www.strathweb.com/2012/06/using-controllers-from-an-external-assembly-in-asp-net-web-api/

コントローラーを別のアセンブリに配置するのは非常に簡単です。ルート登録を更新して、コントローラーを探す場所を伝えるだけです。

routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}",
                namespaces: new[] {"[Namespace of the Project that contains your controllers]"},
                defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional});
于 2013-04-30T13:27:15.393 に答える