Webコアサーバーを作成するには、ASP.NET Core v1.1を使用しています。あなたは、私がウェブソケット要求を処理するためにアクセプタタスクを使用しています見ることができるようにASP.NETコアで依存関係を持つミドルウェア関数を作成する
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// ...
// route of "/ws" requests
app.Map("/ws", Map);
}
public void ConfigureServices(IServiceCollection services)
{
// add the db service
services.AddDbContext<ArticleContext>(
opts => opts.UseNpgsql("MyConnectionString")
);
}
private void Map(IApplicationBuilder app)
{
app.UseWebSockets();
app.Use(Acceptor);
}
private async Task Acceptor(HttpContext httpContext, Func<Task> next)
{
// Handle the request using: httpContext.WebSockets.IsWebSocketRequest
// ...
}
:これは私のStartup.csのダウンにストライプバージョンです。また、DbContextをConfigureServicesメソッドに追加します。
私はMVC機能を使用していないので追加しません。しかし、私はデータベースに接続するにはArticleContextにアクセスする必要があります。
私が見たすべての例では、MVCパッケージに付属のコントローラを使用しています。このようなコントローラでは、コンストラクタ依存性注入を使用してDBContextを注入できます。
は私がコントローラーが、私はそこArticleContextインスタンスを取得しますどのようにアクセプタメソッドを使用していませんか?
は私が何とかMyAcceptorクラスを作成し、代わりに依存性を注入することができるようにapp.Mapを使用してのapp.Use()経由でアプリに追加する必要がありますか? ..まあまあです。
あなたはConfigureメソッドシグネチャに必要な依存関係を追加でき、ConfigureServicesに登録されている限り、メソッドに注入されることを知っていますか? –
いいえ私はそれを知らなかった。役に立つことはできますが、私の問題は解決しません。コメントありがとうございました。 –