如何从MVC 6中的控制器访问IApplicationBuilder.Properties?

时间:2014-12-22 08:23:18

标签: asp.net-core-mvc

MVC 6新的ASP.net 5.0网站项目模板包含一个Startup.cs类,其中包含以下方法。如果我向IApplicationBuilder app添加一个属性,我如何在我的控制器中访问它?

例如,

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
{
    app.Properties.Add("foo", "bar");
}

2 个答案:

答案 0 :(得分:3)

我可以告诉您,一旦应用程序运行,您就无法直接访问构建器的Properties行李。 Properties包用于构建管道而不是用于维护应用程序状态。

如果您需要某些特定于应用程序的状态,我建议您注册自己的服务,该服务可以将数据存储在适合您应用程序的结构中。如果你愿意的话,你当然可以写一个抓住建造者Properties袋的服务并保留在以后使用,但我会劝阻这个,因为它不是你的"你的& #34;字典,因此不太可能满足任何关于生命的保证等。

答案 1 :(得分:0)

我在阅读你的问题之后试图寻找这个选项,这部分是可能的,但主要是你要做的。

而不是这个我建议你应该为asp.net mvc 6编写你的Owin中间件并将你的属性放在HttpContext中,以后你可以在控制器级别检索而没有任何问题。