ASP.NET Core利用原生服务控制反转注入泛型类
2017-03-06 15:40
896 查看
在asp.net mvc中,为了减少重复代码,会用到自己写的泛型类,比如IRepository<T>和EfRepository<T>
在Startup.cs中,有几个控制反转例子
我通过研究asp.net mvc的源码,发现在EFCore项目Infrastructure->class ServiceCollectionMap->
在Startup.cs中,有几个控制反转例子
// Add framework services. services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>();但是,并没有控制反转泛型类的例子,因为,明天2017年3月7号,VS2017正式版才会发布,现在的网上的例子,讨论还不是很多。
我通过研究asp.net mvc的源码,发现在EFCore项目Infrastructure->class ServiceCollectionMap->
public virtual ServiceCollectionMap TryAddTransient([NotNull] Type serviceType, [NotNull] Type implementationType) => TryAdd(serviceType, implementationType, ServiceLifetime.Transient);也就是说,可以传入自己读取好的type类型。
services.AddTransient(typeof(IRepository<>), typeof(EfRepository<>));补充:注入泛型类时记得加<>尖括号。
相关文章推荐
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- (7)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 利用Polly+AOP+依赖注入封装的降级框架
- ASP.NET Core中的依赖注入(3): 服务的注册与提供
- ASP.NET Core的身份认证框架IdentityServer4--(3)令牌服务配置访问控制跟UI添加
- 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类
- ASP.NET Core开发-获取所有注入(DI)服务
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
- .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整-控制反转和依赖注入的使用
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
- ASP.NET Core依赖注入多个服务实现类
- Autofac依赖注入在ASP.NET页面服务中的运用
- Asp.net 权限控制 利用用户控件include到页面
- asp.net web api 服务原生调用
- 利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准标签控制
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
- Asp.net MVC 示例项目"Suteki.Shop"分析之---IOC(控制反转) 推荐
- asp.net 对系统服务的控制_C#【编程联盟】