entity-framework – 有没有办法让ASP.NET 5依赖注入解析没有引
我正在使用MVC 6进行一些原型设计并遇到了困境.我们的项目架构非常简单:
数据层(实体框架6) 即使在阅读(并同意)Composition Root pattern之后,我也试图使设计尽可能与原始设计相似.这意味着我的新MVC 6应用程序不知道我的DbContext类型.您可以猜测当我尝试将一个服务类注入控制器时会发生什么: 尝试激活My.Service.Tier.SomeService时,无法解析My.Data.Tier.DbContext类型的服务. 我相信我们之前的实现(我没有写它)通过反映bin文件夹中的程序集来解析DbContext.有没有一种方法可以使用内置于ASP.NET 5 / MVC 6的新的Microsoft.Extensions.DependencyInjection命名空间来完成此操作(或类似的操作),这样我就可以避免从我的表示层对我的数据层进行硬引用? 更新 public static class ServiceCollectionExtensions { public static void RegisterDbContext(this IServiceCollection services) { services.AddScoped<My.Data.Tier.DbContext,My.Data.Tier.DbContext>(); } } 然后,在我的MVC应用程序的Startup.cs中: using My.Service.Tier.ExtensionNamespace; public void ConfigureServices(IServiceCollection services) { services.RegisterDbContext(); } 解决方法
我认为在内置DI中,您需要的所有内容都必须在DI服务中注册.
要将数据引用保留在MVC应用程序之外,您可以在服务层中使用IServiceCollection扩展方法来注册dbcontext,或者它可以在数据层上调用扩展方法. 这样你的mvc应用程序只需要在服务层上有一个引用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在C#2.0中的Web.config中加密用户名和密码
- 如何以编程方式将触发器添加到ASP.NET UpdatePanel?
- asp.net – Facebook应用程序仅适用于管理员.为什么?
- 经典ASP和ASP.NET MVC2集成
- asp.net – 什么时候Response.IsClientConnected慢?
- 在ASP.NET,VS2008中“无法重新格式化文档”
- asp.net-mvc – ASP.NET MVC将数据从视图传递给控制器
- 如何以编程方式单击ASP.NET网页上的按钮?
- asp.net-mvc-3 – 如何验证HTML输入以防止XSS?
- ASP.NET性能:没有预编译的Web应用程序
- asp.net – 添加runat =“server”会改变布局的行
- asp.net – web.config使用规则将非www或非https
- asp.net-mvc – ASP.NET MVC 3:如何强制ActionL
- asp.net-mvc-3 – 如何将模型绑定中使用的所有Va
- asp.net-core-mvc – 使用RedirectToAction传递T
- [.Net码农]ASP.NET MVC 之 View 测试
- 个人ASP.NET开源
- asp.net-mvc – DotNetOpenAuth:消息签名不正确
- asp.net – 在C#后面的代码中实现javascript确认
- .NetCore技术研究-.NET Core迁移前的准备工作