2017-12-03 15 views
1

モジュール性のために、いくつかのコントローラを別々のアセンブリに作成しました。各アセンブリは、システム全体の限定されたコンテキスト(モジュール、サブシステム、部門など)を表します。ASP.NET Core MVC 2.0の別のアセンブリでコントローラを使用する方法は?

各モジュールのコントローラは、他のモジュールについては何も知らない人が開発したものであり、中央のオーケストレータは1つのアプリケーションですべてのモジュールをカバーしようとしています。

したがって、このモジュールは学校と呼ばれ、TeacherControllerが含まれています。その出力はContoso.School.UserService.dllです。

メインオーケストレーターはEducationと呼ばれ、Contoso.School.UserService.dllへの参照があります。

マイprogram.csがある:教師のコントローラのルートのためしかし

public static IWebHost BuildWebHost(string[] args) => 
     WebHost.CreateDefaultBuilder(args).UseKestrel() 
      .UseStartup<Startup>() 
      .Build(); 

、私は他のアセンブリでコントローラを使用する方法404を取得しますか? assemblyContoso.School.UserService.dllを表すインスタンスAssemblyある

services.AddMvc().AddApplicationPart(assembly).AddControllersAsServices(); 

:あなたは以下を呼び出す必要がありStartupクラスのConfigureServicesメソッド内

答えて

4

あなたはそれをロードするか、任意のインクルードタイプからか、このようにそれを得る:

var assembly = Assembly.Load("Contoso.School.UserService"); 
+0

何nugetパッケージには、私は 'AddApplicationPart'のために必要なのでしょうか? –

+0

'Microsoft.AspNetCore.Mvc.Core.dll'アセンブリにあり、' Microsoft.Extensions.DependencyInjection'名前空間を持っています –

+0

詳細情報とソースコードのサンプルについては、こちらをご覧ください - https://docs.microsoft.com/ja -us/aspnet/core/mvc/advanced/app-parts –

関連する問題