MVC5を使用すると、すべてのレイヤーへの参照を持つブートストラッププロジェクトを非常に簡単に作成できるため、UIレイヤーをインフラストラクチャロジックへの参照から切り離すことができます。プロジェクトには、IoCコンテナーのセットアップなどのスタートアップ構成ロジックが含まれます。
これを行う方法は、スタートアップクラスを定義することでした。
public class Startup
{
public static void Start()
{
// startup configuration (IoC etc) goes here
}
}
そして、次の行を追加しAssemblyInfo.cs
ます:
[assembly: PreApplicationStartMethod(typeof(Startup), "Start")]
残念ながら、このアプローチはasp.net 5では機能しなくなりました。ドキュメントを簡単に調べましたが、フレームワークがWebプロジェクト内でStartupという名前のクラスを検索していることがわかりました。
また、Startupクラスの検索に関与していると思われるMicrosoft.AspNet.Hosting
ソースコードを調べました。構成クラスへの参照がいくつかあるので、何らかの構成設定を使用してアセンブリをロードできる可能性がありますが、これを確認したり、どの設定を決定したりすることができませんでした。
また、これが当てはまるconfig.json
場合、ファイル自体がStartupクラス内にロードされているときに、ファイルを使用してStartupクラスをどのように決定できますか?たとえば環境変数を使用するなど、スタートアップアセンブリを構成するためのさまざまなオプションはありますか?
がWebHostBuilder
スタートアップの種類を探すアセンブリを変更できます。
次の内容の名前のINI構成ファイルをフォルダーに追加Microsoft.AspNet.Hosting.ini
しますwwwroot
。
[Hosting]
Application = App.Bootstrapper
App.Bootstrapper
アプリケーションのブートストラッププロジェクトの名前空間はどこにありますか。
ただし、スタートアップクラスは同じように見える必要があります。たとえば、withConfigureServices
とConfigure
:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// ...
}
public void Configure(IApplicationBuilder app)
{
// ...
}
}
興味があれば、ここでスタートアップの種類を決定するためのロジックを見ることができます。Hosting:Application
INIファイルでキーを指定すると、の代わりにその値が使用されますappEnvironment.ApplicationName
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加