をウェブホストによって使用されるservicecollectionでサービスを交換するので、私はそうのような実行時にstartup.cs
にサービスコレクションに追加されたクラスのインスタンスを持っている:[OK]を.NETコアに
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<WidgetProvider, BlueWidgetProvider>();
}
しかし、実行している間、私がしたいですBlueWidgetProvider
をRedWidgetProvider
に置き換えることができるアプリケーションです。これをどうやってやりますか? IServicesCollection
でRemove
メソッドを使用できますが、これをアプリケーションにどのように公開するのですか?以下のようにWidgetProvider
が追加されたIServiceProvider
が公開されていますが、根底にあるサービスコレクションへのアクセス方法はわかりません。
は、サービスを構成するときにスタートアップが異なるウィジェットプロバイダを使用するように指示するいくつかの設定変更を行います:私のために働いて
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
Current.Services = host.Services; //Here
host.Run(Current.AppCancellationSource.Token);
}
アプリケーションにはどのWidgetProviderが必要ですか? – Ahmar
アプリケーション全体を再起動することなく、ユーザーがWidgetProviderを変更できるようにするのは、単純にユーザー入力です。 –