2016-07-08 4 views
0

私のチームでは、ASP.NET Core RC1 WebアプリケーションをRTMに移行しています。内部的にStaticFileMiddlewareのインスタンスを作成するカスタムミドルウェアがあります。 RC1ではそれが可能に使用される:Asp.Net Core RTM StaticFileMiddleware:IOptions <StaticFileOptions>を渡す方法は?

// ctor signature: 
StaticFileMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv, 
    StaticFileOptions options, // <-- 
    ILoggerFactory loggerFactory); 

と我々は簡単にStaticFileOptionsのインスタンスを作成して渡すことができます。

// ctor signature: 
StaticFileMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv, 
    IOptions<StaticFileOptions> options, // <-- 
    ILoggerFactory loggerFactory); 

と私はIOptions<StaticFileOptions>を作成する方法については考えている:今RTMです。実際には、Tインスタンスを持ち、一般的にIOptions<T>を作成する方法がわかりません。

Latest reference docページトップに戻るGoogleの結果は、ヒントを提供しません。 StaticFileMiddlewareの検索結果は、一般的に非常に不足しています。

今後の進め方は誰でも知っていますか?これは実際に私たちが移行を進めるのを妨げています。 TA

+0

'optionsパターン' docsを見てください。https://docs.asp.net/en/latest/fundamentals/configuration.html#using-options-and-configuration-objects –

+0

コメントありがとうございます。私はそれを知っています、既に 'configure 'オプションはビルドされた 'IConfiguration'設定からのセクションから取得し、' IOptions 'を他の部分に注入します。現在のシナリオでは、実行時のロジックと値に応じて、いくつかのメソッドの中に 'StaticFileOptions'を作成し、同じメソッドでミドルウェアに渡す必要があります。では、これを2つに分割する必要があります。これは、DIを使用してオプションインスタンスを作成して登録する部分と、そのインスタンスを挿入して使用する部分です。 – superjos

+2

このようなものを使ってみませんか? 'services.Configure (オプ​​ション=> { //あなたのロジック options.DefaultContentType =" <コンテンツタイプ> "; //他のオプションを設定 });'あなたの場合は十分ではありませんか? –

答えて

1

OptionsのクラスはMicrosoft.Extensions.Optionsで、静的ファクトリメソッドはIOptions<TOptions> Create<TOptions>(TOptions options)です。まだ走っていないが、少なくともそれは失敗しない。

私はAsp.Net CoreとPRsを見て、この使用パターンについて2月か3月(2016年)前後に議論が行われました。ちょうどいくつかの名前を挙げると:Is#122PR#757PR#719PR#124Issue #105私は(うまくいけば)正しい方向に私を導いた。

関連する問題