asp.net-core-mvc – 如何在启动时初始化应用程序状态并从MVC 6
假设我有一个名为MySiteConfiguration的类,其中我有一堆,你猜对了,配置数据.加载后,该数据在应用程序运行时的过程中不会发生变化.
我的目标是在启动时构造此类的实例,并从我的控制器操作中访问它.我不想多次构建类,因为这不应该是必需的. 例如,要在WebApi 2中执行此操作,我会: >在我的应用程序启动方法中实例化该类. 需要访问配置实例的任何控制器都将继承ControllerBase并引用基本属性.还不错…… 话虽如此,从我所知道的,这种模式在新框架中不起作用.在MVC 6的新Controller类上没有覆盖初始化方法.我也不熟悉新的Startup.cs模式和中间件,可以知道从哪里开始解决这个问题. 谢谢. 解决方法
使用依赖注入.注册包含数据的单例服务,然后在控制器上使用构造函数注入来获取服务实例.
首先,定义一个服务.服务可以是任何类或接口. public class MyConfigService { // declare some properties/methods/whatever on here } 在你的Startup.cs做这样的事情: services.AddSingleton<MyConfigService>(); (请注意,AddSingleton还有其他重载,具体取决于您的方案.) 然后在每个控制器中使用它: public MyController : Controller { public MyController(MyConfigService myService) { // do something with the service (read some data from it,store it in a private field/property,etc. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在ASP.NET MVC中传递页面的元标记?
- asp.net-mvc – DevExpress MVC GridView – 如何获取单元格
- Asp.NET 生成静态页面并分页的代码
- asp.net – 从EF自动迁移切换到代码优先迁移
- asp.net – aspx中__EVENTVALIDATION __VIEWSTATE的目的是什
- asp.net-mvc – MVC项目中的System.Globalization.CultureN
- ASP.NET MVC的客户端验证:jQuery的验证
- asp.net – 如何将Controller上的Ajax reqest重定向到登录页
- asp.net – 将自定义类添加到HttpContext
- asp.net – 设置Orchard开发工作区
- asp.net-mvc – 具有插件和多租户支持的ASP.NET
- asp.net-mvc-3 – 基于域的ASP.net MVC 3输出缓存
- asp.net – 使用OAuth在Web API中进行身份验证
- asp.net-mvc – Asp.net 5(vnext)是否可以使用?
- ASP.NET通过分布式Session提升性能
- asp.net – 点击按钮禁用
- asp.net-mvc – ASP.NET MVC – 从另一个项目引用
- asp.net-mvc – ASP.NET MVC 3 – 这个布尔值如何
- asp.net – 如何在vNext项目中的方法上应用Outpu
- asp.net-mvc-4 – SimpleMembershipInitializer不