在我的團隊中,我們正在將ASP.NET Core RC1 Web應用程序遷移到RTM。有一個自定義中間件在內部創建StaticFileMiddleware
的實例。在RC1它曾經是:Asp.Net核心RTM StaticFileMiddleware:如何通過IOptions <StaticFileOptions>?
// ctor signature:
StaticFileMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv,
StaticFileOptions options, // <--
ILoggerFactory loggerFactory);
,我們可以輕鬆地創建和傳遞的StaticFileOptions
一個實例。現在,在RTM是:
// ctor signature:
StaticFileMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv,
IOptions<StaticFileOptions> options, // <--
ILoggerFactory loggerFactory);
,我對如何創建IOptions<StaticFileOptions>
不知道。其實我不知道如何創建一個一般IOptions<T>
,圍繞具有T
實例。
Latest reference文檔頁面,還沒有在上面谷歌的結果,不提供任何暗示。 StaticFileMiddleware
上的搜索結果一般都很少。
任何人都知道如何進行?實際上,這阻礙了我們向移民邁進。 TA
看看'options pattern' docs https://docs.asp.net/en/latest/fundamentals/configuration.html#using-options-and-configuration-objects –
感謝您的評論。我意識到這一點,我們已經'配置'選項從建立'IConfiguration'設置的部分,然後注入'IOptions '在其他部分。在當前場景中,我們在某個方法內部創建一個'StaticFileOptions',具體取決於運行時的邏輯和值,同樣的方法我們需要將其傳遞給中間件c'tor。那麼現在我們應該把它分成兩部分,一部分是我們用DI創建和註冊選項實例,另一部分是我們注入並使用該實例的部分? –
superjos
爲什麼你不使用這樣的東西? 'services.Configure(options => { //您的邏輯 options.DefaultContentType =「」; //設置其他選項 });'對於您的情況不夠嗎? –