在我的团队中,我们正在将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 =“”; //设置其他选项 });'对于您的情况不够吗? –