杨中科 ASP.NET DI综合案例

这篇具有很好参考价值的文章主要介绍了杨中科 ASP.NET DI综合案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

综合案例1

需求说明

1、目的:演示DI的能力;
2、有配置服务、日志服务,然后再开发一个邮件发送器服务。可以通过配置服务来从文件、环境变量、数据库等地方读取配置,可以通过日志服务来将程序运行过程中的日志信息写入文件、控制台、数据库等。
3、说明:案例中开发了自己的日志、配置等接口,这只是在揭示原理,.NET有现成的,后面讲。

实现1

1、创建三个.NETCore类库项目,ConfigServices是配置服务的项目,LogServices是日志服务的项目,Mailservices是邮件发送器的项目,然后再建一个.NETCore控制台项目MailServicesConsole来调用MailServices。MailServices项目引用ConfigServices项目和LogServices项目,而MailServicesConsole项目引用MailServices项目。
2、编写类库项目LogServices,创建ILogProvider接口。编写实现类ConsoleLogProvider。编写一个ConsoleLogProviderExtensions定义扩展方法AddConsoleLog,namespace和IServiceCollection一致

实现2

1、编写配置服务的类库项目ConfigServices。接口IConfigProvider,方法:stringGetValue(string name).2、环境变量读取配置类EnvVarConfigProvider:Environment.GetEnvironmentVariable(name);编写一个类带扩展方法:AddEnvVarConfig3、编写从ini文件中读取配置的类ConfigServices。

新建控制台项目
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
新建类库项目
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
日志服务
logServices 接口
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

实现类
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
配置服务
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
添加实现类
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

邮件服务

需要添加日志引用
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

控制台项目添加 邮件服务得引用
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

添加IMailServices 接口
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

Nuget 导入包 ,引入命名空间
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

控制台测试
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

综合案例2

新建配置实现类:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

新建配置文件
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
编写实现类 代码(读取ini 文件)
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
主类:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

方式二 更简单的方法

希望提供一个add 方法
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
使用扩展方法
添加一个扩展方法
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

使用:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
改写ini配置文件读取:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
调用
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

综合案例3

实现3

1、“可覆盖的配置读取器”。配置中心服务器。可以本地的覆盖配置服务器的,或者配置文件覆盖环境变量的。例如,按照“配置中心服务器”、“本地环境变量”、“本地配置文件”的顺序添加了三个配置提供者,在“配置中心服务器”中提供了“a=1;b=2;c=3”这三个配置项,在“本地环境变量”中配置了“a=10;b=20;”,在“本地配置文件”中配置了“b=200”,那么最终我们读取的时候读到的就是’a=10;b=200;c=3;’
2、定义一个从各个ConfigProvider中读取项的IConfigReader接口。编写实现类LayeredconfigReader。

示例:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
实现类:

杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
扩展方法:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
更改MailService
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
调用
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
添加环境变量
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

运行结果:
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
改变后运行
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#
运行结果
杨中科 ASP.NET DI综合案例,ASP.NET,数据库,.netcore,asp.net,后端,c#

总结

关注于接口,而不是关注于实现,各个服务可以更弱耦合的协同工作。在编写代码的时候,我们甚至都不知道具体的服务是什么。
第三方DI容器:Autofac等。Autofac优点:支持属性注入基于名字注入、基于约定的注入等。文章来源地址https://www.toymoban.com/news/detail-832615.html

到了这里,关于杨中科 ASP.NET DI综合案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASP.NET Core MVC 从入门到精通之数据库

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步

    2023年04月27日
    浏览(89)
  • ASP.NET WEB API通过SugarSql连接MySQL数据库

    注意:VS2022企业版可以,社区版可能存在问题。实体名称和字段和数据库中的要一致。 1、创建项目,安装SqlSugarCore、Pomelo.EntityFrameworkCore.MySql插件 2、文件结构 2、appsettings.json { “Logging”: { “LogLevel”: { “Default”: “Information”, “Microsoft.AspNetCore”: “Warning” } }, “Allowed

    2024年02月12日
    浏览(41)
  • asp.net老年大学教务管理信息系统VS开发sqlserver数据库web结构c#编程

    一、源码特点         asp.net 老年大学教务管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 asp.net老年大学教务管理系统 应用技术:asp.net c#+sqlserver 开发工具:

    2024年02月07日
    浏览(64)
  • 使用asp.net core web api创建web后台,并连接和使用Sql Server数据库

    前言:因为要写一个安卓端app,实现从服务器中获取电影数据,所以需要搭建服务端代码,之前学过C#,所以想用C#实现服务器段代码用于测试,本文使用C#语言,使用asp.net core web api组件搭建服务器端,并访问sql server 数据库。 一、安装Visual studio 2022 社区版,并安装ASP.NET和

    2024年02月14日
    浏览(54)
  • asp.net古代服饰系统VS开发sqlserver数据库web结构c#编程包含购物答题功能点

    一、源码特点         asp.net 古代服饰系统 是一套完善的web设计管理系统(含购物 答题),系统采用mvc模式(BLL+DAL+ENTITY)系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境 为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net 月下逢古代服饰系统1 二、功能

    2024年02月07日
    浏览(48)
  • 《尚贤达猎头网站流量统计模块》,通过HTTP自定义模块实时获取asp.net网站访问流量,并保存到数据库

    开发了个网站流量统计模块,实时获取asp.net网站访问流量,并保存到数据库。 一、功能: 通过HTTP自定义模块实时获取网站流量 二、支持平台:windows+IIS 三、安装方法: 1、将文件www.sunsharer.cn.dll复制到网站bin目录下; 2、将配置好的sqlstr.txt复制到网站bin目录下; 3、将数据

    2024年01月16日
    浏览(44)
  • asp.net酒店管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net酒店管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net 酒店管理系统1 二、功能介绍 后台主要功能: (1)用户管理:对用户信息进行添

    2024年02月07日
    浏览(52)
  • asp.net归宿管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net归宿管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net归宿管理系统VS开发sqlserver数据库w 二、功能介绍 一、定时打卡(采用RFID卡)

    2024年02月09日
    浏览(62)
  • asp.net文档管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net文档管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net文档管理系统 二、功能介绍 (1)用户管理:对用户信息进行添加、删除、修改和

    2024年02月08日
    浏览(44)
  • asp.net高校食谱管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net高校食谱管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net高校食谱管理系统VS开发sqlserver数据 二、功能介绍 (1)用户管理:对用户信

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包