当前位置: 首页 > news >正文

政府网站为什么设计免费网站制作app

政府网站为什么设计,免费网站制作app,国外网站平台,网站开发 项目的招标文件.NET8/.NETCore 依赖接口注入&#xff1a;自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类&#xff1a;HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…

ASP.NETCore/WebApi 自动依赖注入接口和类-开发框架文库

.NET8/.NETCore 依赖接口注入:自动注入项目中所有接口和自定义类

目录

  • 自定义依赖接口
  • 扩展类:HostExtensions AddInjectionServices方法
  • GlobalAssemblies 全局静态类
  • 测试

自定义依赖接口

需要依赖注入的类必须实现以下接口。

C#

    /// <summary>/// 依赖接口/// </summary>public interface IDependency { }/// <summary>/// 注入接口,生命周期:Transient/// </summary>public interface ITransientDependency : IDependency { }/// <summary>/// 注入接口,生命周期:Scoped/// </summary>public interface IScopedDependency : IDependency { }/// <summary>/// 注入接口,生命周期:Singleton/// </summary>public interface ISingletonDependency : IDependency { }

扩展类:HostExtensions AddInjectionServices方法

C#

 public static class HostExtensions{/// <summary>/// 自动注入接口, 注入到服务容器IServiceCollection/// </summary>/// <param name="services"></param>/// <returns></returns>public static IServiceCollection AddInjectionServices(this IServiceCollection services){//服务生命周期映射Dictionary<Type, ServiceLifetime> map = new Dictionary<Type, ServiceLifetime>{{ typeof(ITransientDependency),ServiceLifetime.Transient },{ typeof(IScopedDependency),ServiceLifetime.Scoped },{ typeof(ISingletonDependency),ServiceLifetime.Singleton },{ typeof(IDependency),ServiceLifetime.Scoped },};//获取程序集所有实体模型Typevar listTypes = GlobalAssemblies.GetTypes();foreach (var type in listTypes){map.ToList().ForEach(aMap =>{//依赖注入接口var interfaceDependency = aMap.Key;if (interfaceDependency.IsAssignableFrom(type) && interfaceDependency != type && !type.IsAbstract && type.IsClass){//注入实现Console.WriteLine("注入实现:" + type.FullName + ", " + aMap.Value.ToString());                        services.Add(new ServiceDescriptor(type, type, aMap.Value));//获取当前类的所有接口var interfaces = listTypes.Where(x => x.IsInterface && x.IsAssignableFrom(type) && x != interfaceDependency).ToList();//有接口,注入接口if (interfaces.Count > 0){interfaces.ForEach(@inteface =>{Console.WriteLine("注入接口:" + type.FullName + "," + @inteface.FullName + ", " + aMap.Value.ToString());services.Add(new ServiceDescriptor(@inteface, type, aMap.Value));});}}});};return services;}}

GlobalAssemblies 全局静态类

加载程序集Assembly。

作用:

  • 用于初始化CSFramework.EF组件(注册实体模型)
  • 用于获取所有接口和类,依赖注入服务

C#

    public static class GlobalAssemblies{/// <summary>/// 加载程序集Assembly。/// 作用:1.用于初始化CSFramework.EF组件(注册实体模型)///      2.用于获取所有接口和类,依赖注入服务/// </summary>/// <param name="hostBuilder"></param>/// <returns></returns>public static void LoadAssemblies(){//加载以下程序集(包含所有实体模型、自定义服务的程序集)GlobalAssemblies.Assemblies = new List<System.Reflection.Assembly>{//如:CSFramework.LicenseServerCore.dllSystem.Reflection.Assembly.Load("CSFramework.LicenseServerCore"),System.Reflection.Assembly.Load("CSFramework.Models"),};}/// <summary>/// WebApi框架所有程序集/// </summary>public static List<System.Reflection.Assembly> Assemblies { get; set; }/// <summary>/// WebApi框架所有类型Types/// </summary>public static List<System.Type> GetTypes(){return Assemblies.SelectMany(m => m.GetExportedTypes()).ToList();}}

测试

.NET8/.NETCore 依赖接口注入:自动注入项目中所有接口和实体类

http://www.dt0577.cn/news/26616.html

相关文章:

  • 营口网站开发公司优化培训课程
  • 做百度网站费用深圳seo公司
  • 想看别人的wordpress博客网站汕头seo优化培训
  • 建设网站需要哪些费用商丘网站优化公司
  • 怎么看公司网站做的好不好哦北京已感染上千万人
  • 长春 房地产网站建设网页关键词优化软件
  • wordpress获取用户名密码seo网站推广方式
  • 品牌网站排名软件东营seo
  • 安居客做网站公司网页制作
  • 衡水网站建设推广ui培训
  • 外文网站制作百度问一问客服人工在线咨询
  • 网站建设策划毕业论文上海今天刚刚发生的新闻
  • 做外贸没网站可以吗守游网络推广平台
  • 广东快速做网站公司哪家好免费发帖的平台有哪些
  • 网站的外部链接怎么做怎样做搜索引擎推广
  • 南京专业网站建设注册公司
  • 市场调查与预测网站建设seo自学网
  • 网站是做百度快照推广好百度推广怎么登录
  • 如何规划设计一个网站网站推广广告
  • .net做网站的方式郑州关键词网站优化排名
  • 网站建设 jsp php怎么推广软件让别人下载
  • 贵州企业品牌网站建设营销管理培训课程培训班
  • 电子商务企业有哪些杭州seo关键词优化公司
  • 网站建设的英语输入关键词就能写文章的软件
  • 怎么做安居客网站北京seo推广公司
  • 微信网页宣传网站怎么做网推拉新app推广接单平台
  • 网上商城网站怎么做百度云资源搜索平台
  • 网站制作都包括什么seo计费怎么刷关键词的
  • 网站建设记账爱战网关键词查询网站
  • 河南网站备案代理自助建站的优势