2017-06-27 13 views
0

Web API RESTインターフェイスを持つプロジェクトがいくつかあります。C#Web APIプロジェクト - ライブラリを介したコントローラの共有

これらのインターフェイスの一部は、プロジェクト間で共通です(ユーザー管理など)。

さまざまなプロジェクトに含めることができるコントローラーを含むライブラリーを作成する方法はありますか?

これはVS 'テンプレートには存在しないようですが、コントローラがコンパイルするのに他にも多くのことを必要とするのでしょうか?あなたは、起動時に外部コントローラを追加することができます

public void ConfigureServices(IServiceCollection Services) 
    { 
     Services.AddMvc() 
      .AddApplicationPart(typeof(SessionController).Assembly); 
    } 

:最後に

+0

共通コントローラではなく、異なるプロジェクトから呼び出す共通ロジックを持つ共通サービスです。 –

+0

プロジェクトごとにWeb APIが用意されています。たとえば、それらのすべてが/ usersに対して同じコードを持っています。ロジックはすでに共有されていますが、コントローラーであるWebパーツも共有したい – Thomas

+0

実行時に、URL項目に基づいてコントローラーを見つけるためにルートが解決されると、現在のmvcプロジェクトのコントローラーでコントローラーが検索されます。コントローラがmvcプロジェクトに存在しない場合、これは失敗します。この特定のユースケースを処理する独自のコントローラファクトリを作成することで、この動作を無効にすることができます。だから簡単な解決策ではありません。 –

答えて

0

、答えは1行だけです。 すべてのコントローラをアセンブリからすぐに追加できるかどうかを確認しています。

関連する問題