免费手机h5模板网站模板下载,如皋做公司网站,wordpress 增加 SEO,建设个人网站ip前言 在ASP.NET Core中使用依赖注入中使用很简单#xff0c;只需在Startup类的ConfigureServices()方法中#xff0c;通过IServiceCollection接口进行注入即可#xff0c;其它的无需关心。 通过接口的Add*方法进行注册#xff0c;代码如下#xff1a; 1 public void Confi… 前言 在ASP.NET Core中使用依赖注入中使用很简单只需在Startup类的ConfigureServices()方法中通过IServiceCollection接口进行注入即可其它的无需关心。 通过接口的Add*方法进行注册代码如下 1 public void ConfigureServices(IServiceCollection services)2 {3 services.AddSingletonIUser, MyUser();4 } 但是这样的注入方法多了之后就会产生太多行的services.Add...方法看着实在是不爽 回想起MEF只需要两个约定好的特性就可以完成注册和注入的声明比起现在一行行注册方式简直不要太好。 所以我对IServiceCollection接口进行了扩展让它能与MEF类似的自动处理注册类型而且支持通过多种方式进行注册。 我对接口进行了如下改造让它支持特性(attribute)、类型(继承或接口)、名称、命名空间、程序集名等进行批量的注册。 展示一下特性注册在ConfigureServices加入如下 services.Scan(scan scan.FromAssemblyOfIUser().AddClasses().UsingAttributes()); 这样就完成了对IUser所在程序集带有ServiceDescriptor特性的自动注册并且可以通过ServiceLifetime进行生命周期管理 public interface IUser
{ string Name { set; get; }
}[ServiceDescriptor(typeof(IUser),ServiceLifetime.Transient)]public class MyUser : IUser
{ public string Name { set; get; }
} 这样在使用ServiceProvoider.GetService(typeof(IUser))就可以取到MyUser类型实例了。 以上只是演示了特性注入的方式还有很多玩法在Github上YOYO.Extensions.DI项目下 https://github.com/maxzhang1985/YOYOFx/tree/master/AspNetCore/YOYO.Extensions.DI YOYOFx还非常不完善只完成了最基本的功能不过我会坚持写下去坚持开源为开源社区做那么一点点的贡献。 GitHubhttps://github.com/maxzhang1985/YOYOFx 如果觉还可以请Star下 欢迎一起交流。 .NET Core 和 YOYOFx 的交流群 214741894 相关文章 ASP.NET Core 介绍通过几个Hello World感受.NET Core全新的开发体验.NET Core系列 1、.NET Core 环境搭建和命令行CLI入门Asp.Net Core 发布和部署 MacOS Linux Nginx Asp.Net Core 发布和部署Linux Jexus ASP.NET Core Docker部署ASP.NET Core 完整发布,自带运行时 到jexus全球首发免费的MySql for Entity Framework CoreASP.NET Core开发-使用Nancy框架.NET Core全新路线图ubuntu16.4下用jexus部署asp.net core rtm 原文地址http://www.cnblogs.com/maxzhang1985/p/5703191.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注