响应式网站发展机器人软件开发平台

web/2025/10/3 16:06:29/文章来源:
响应式网站发展,机器人软件开发平台,全部免费网站软件,外贸获客软件排名前十名点击蓝字关注我们课程链接#xff1a;http://video.jessetalk.cn/course/explore良心课程#xff0c;大家一起来学习哈#xff01;任务16#xff1a;介绍1、依赖注入概念详解从UML和软件建模来理解从单元测试来理解2、ASP.NET Core 源码解析任务17#xff1a;从UML角度来理… 点击蓝字关注我们课程链接http://video.jessetalk.cn/course/explore良心课程大家一起来学习哈任务16介绍1、依赖注入概念详解从UML和软件建模来理解从单元测试来理解2、ASP.NET Core 源码解析任务17从UML角度来理解依赖1、什么是依赖当一个类A完成某个任务需要另一个类B来帮助时A就对B产生了依赖例如CustomerController需要对customer进行新增或查找时用到EF,则对EF的Context产生了依赖var context new CustomerContext(new DbContextOptionsCustomerContext{});2、显示依赖与隐式依赖显示依赖把一个类用到的所有外部组件放到一个类最上面在构造函数里面初始化private CustomerContext _context;public CustomerController(){ _context new CustomerContext(new DbContextOptionsCustomerContext{});}隐式依赖需要用到的地方再初始化不推荐var context new CustomerContext(new DbContextOptionsCustomerContext{});3、依赖倒置原则依赖高层业务不依赖低层业务的具体实现而依赖于具体的抽象CustomerController是高层业务的一个组件依赖于CustomerContext是一个低层数据库的实现如果现在需要把EF换成一个内存的实现或者mysql需要修改CustomerController类风险很大所以应该依赖于低层业务的抽象把低层业务方法抽象比如查找新增抽象出一个接口当不需要使用EF的时候使用内存的实现替换private ICustomerRepository _customerRepository;public CustomerController(){ _customerRepository new EfCustomerRepository( new CustomerContext(new DbContextOptionsCustomerContext{}));}任务18控制反转实现依赖注入的方式不由自己决定而是交给一个IOC容器需要什么由容器传入比如生产环境需要使用EF则由容器传入一个EfCustomerRepository而测试环境需要使用内存级别的则传入一个MemoryCustomerRepositoryprivate ICustomerRepository _customerRepository;public CustomerController(ICustomerRepository customerRepository){ _customerRepository customerRepository;}任务19单元测试var repository new Data.MemoryCustomerRepository();var controller new CustomerController(repository);// 通过外部控制Controller里面的依赖var customer new Model.Customer(){ FirstName Mingson, LastName Zheng, Phone 123456789,};var result controller.Add(customer);Assert.IsTypeOkResult(result);// 正确结果var resultBad controller.Add(customer);Assert.IsTypeBadRequestObjectResult(resultBad);// 错误结果通过单元测试可以得知修改Bug过程中是否误删代码导致原来通过的测试现在无法通过。任务20DI初始化的源码解读Microsoft.AspNetCore.Hosting.WebHostBuilder /// summary /// Builds the required services and an see crefT:Microsoft.AspNetCore.Hosting.IWebHost / which hosts a web application. /// /summary public IWebHost Build() { ...... // 第一步build IServiceCollection serviceCollection1 this.BuildCommonServices(out hostingStartupErrors); // 第二步获取ServiceCollection,ServiceProvider IServiceCollection serviceCollection2 serviceCollection1.Clone(); IServiceProvider providerFromFactory GetProviderFromFactory(serviceCollection1); ...... // 第三步new一个WebHost传入ServiceCollectionServiceProvider WebHost webHost new WebHost(serviceCollection2, providerFromFactory, this._options, this._config, hostingStartupErrors); ...... // 第四步webHost初始化方法Initialize webHost.Initialize(); ...... }第一步BuildCommonServices中new一个ServiceCollection就是在startup接口中使用 private IServiceCollection BuildCommonServices( out AggregateException hostingStartupErrors) { ...... ServiceCollection services new ServiceCollection(); // new完之后添加一些初始化操作 ...... return (IServiceCollection) services; }IStartup接口namespace Microsoft.AspNetCore.Hosting{ public interface IStartup { IServiceProvider ConfigureServices(IServiceCollection services); void Configure(IApplicationBuilder app);// 配置管道 }}第四步webHost初始化方法Initialize public void Initialize() { ...... this.EnsureApplicationServices(); ...... } private void EnsureApplicationServices() { ...... this.EnsureStartup(); this._applicationServices this._startup.ConfigureServices(this._applicationServiceCollection); } private void EnsureStartup() { if (this._startup ! null) return; this._startup this._hostingServiceProvider.GetServiceIStartup(); if (this._startup null) throw new InvalidOperationException(string.Format(No startup configured. Please specify startup via WebHostBuilder.UseStartup, WebHostBuilder.Configure, injecting {0} or specifying the startup assembly via {1} in the web host configuration., (object) IStartup, (object) StartupAssemblyKey)); }任务21依赖注入的使用了解ASP.NET Core 依赖注入看这篇就够了http://www.jessetalk.cn/2017/11/06/di-in-aspnetcore/点“在看”给我一朵小黄花

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天津外贸营销型网站建设公司北京网站制作哪家好

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说下你的vue项目的目录结…

取消网站备案号免费动画模板素材网站

IO流之内存流,打印流,随机流 1、内存流 1、理解 内存流"(Memory Stream)在计算机编程中通常指的是一种特殊的数据流,它在内存中存储和操作数据,而不是在外部存储(如硬盘、网络等&#xf…

wordpress 文章分页省略号龙岗网站 建设seo信科

四、 文件权限 1 、文件类型 Linux 广泛的被很多用户所接受,它强大的功能受到很多人喜欢, Linux 文件一般是用一些相关的应 用程序创建,比如图像工具、文档工具、归档工具 ... .... 或 cp 工具等。 Linux 文件的删除方式是用 rm 命…

网站常规seo优化步骤网店图片怎么制作

1. 概念 享元模式是一种结构型设计模式,它通过共享技术有效地支持大量细粒度对象的复用。 2. 原理结构图 图1 图2 2. 1 角色 抽象享元(Flyweight):这是所有具体享元类的基类,它定义了享元对象的内部状态和外部状…

广州seo网站推广费用软件项目管理计划书

接着前面的文章,这篇文章就来说说menory alignment -- 内存对齐. 一、为什么需要内存对齐? 无论做什么事情,我都习惯性的问自己:为什么我要去做这件事情? 是啊,这可能也是个大家都会去想的问题,…

iis 创建网站大连企业信息

181/2461/8938产品概述: E4990A 阻抗分析仪具有 20 Hz 至 120 MHz 的频率范围,可在宽阻抗范围内提供出色的 0.045%(典型值)基本准确度,并内置 40 V 直流偏置源,适用于元器件、半导体和材料测量。 无论研发、生产、质…

重庆知名做网站的公司北京移动端网站优化

参考链接 FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)_雷霄骅的博客-CSDN博客_av_malloc 内容介绍 内存操作的常见函数位于libavutil\mem.c中本文记录最常使用的几个函数: av_malloc()av_realloc()av_mal…

深圳网站设计公司专业吗中山网络公关

这份文件是关于DS3231SN芯片的数据手册,由Maxim Integrated公司生产。DS3231SN是一款高精度的I2C接口集成实时时钟(RTC)/温度补偿晶体振荡器(TCXO)/晶体的芯片。以下是该芯片的核心内容概述: 产品概述&…

张掖作风建设年网站备案网站制作

文章目录 功能描述实现代码 功能描述 有以下xml内容&#xff0c;需要转成String字符串。同时&#xff0c;要去掉文中所有格式。 <root><student><name>张三</name><sex>男</sex><age>16</age><class>1班</class>…

网站内嵌地图商丘网商丘网络第一媒体

文/圆梦志愿 伏老师众所周知&#xff0c;选科是我国新高考中最重要的事情之一&#xff0c;且涉及到了多门选考科目。其中&#xff0c;要数物理的话题性相对最强。那么&#xff0c;高考选科是不是物理特别重要&#xff1f;新高考没有选物理是不是完了&#xff1f;一、高考选科是…

三门峡市湖滨区建设局网站深圳网站seo关键词

4、zabbix添加监控项 nginx监控 在server上安装nginx 添加模板 浏览图形 mysql监控 zabbix自带mysql模板&#xff0c;所以可以在server1上直接做 创建数据库连接用户 percona数据库模板 清理掉mysql的模块链接 安装并配置好percona的数据库模板 测试脚本 删除tmp下的缓存文…

哪些网站可以做详情页洛阳做家教去什么网站

目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装 1&#xff09;菜单实现 2&#xff09;进度条实现 3&#xff09;main函数实现 4&#xff09;Game函数 5&#xff0…

珠海网站建设技术支持迁西县住房和城乡规划建设局网站

12月6日&#xff0c;浙江省经信厅公示了2023年浙江省信息技术应用创新典型案例入围名单。本次案例征集活动&#xff0c;由浙江省经信厅、省密码管理局、工业和信息化部网络安全产业发展中心联合组织开展&#xff0c;共遴选出24个优秀典型解决方案&#xff0c;迪捷软件“基于全数…

全网营销网站建设惠城网站制作

在 C# 中&#xff0c;IServiceCollection 是 ASP.NET Core 中用于依赖注入的接口。依赖注入是一种设计模式&#xff0c;它允许对象之间的依赖关系由外部组件管理&#xff0c;而不是在对象内部直接创建它们的依赖项。IServiceCollection 接口用于注册和配置应用程序中的服务。 …

网站建设鼠标移动变颜色传奇176网页游戏

前情提要&#xff0c;如果看了书本&#xff0c;这个lab难度不高&#xff0c;但是如果不看书&#xff0c;难度还是挺高的&#xff0c;并且这个lab会用到cachelab中学到的东西&#xff0c;需要阅读 第十章&#xff1a;系统编程第十一章&#xff1a;网络编程第十二章&#xff1a;…

西宁网站建设最好的公司校园加盟网站建设

机器视觉应用开发是指利用计算机视觉技术进行图像或视频数据处理和分析&#xff0c;实现自动化、智能化的应用程序开发。下面是机器视觉应用开发的一般步骤和常见任务。 需求分析&#xff1a;明确开发的机器视觉应用的具体需求和目标&#xff0c;例如人脸识别、目标检测、图像分…

做英语四级题的网站谷歌广告上海有限公司官网

对于网页编程来说&#xff0c;最重要的就是存取和读写数据了。存储方式可能有很多种&#xff0c;可以是字符串、数组、文件的形式等&#xff0c;今天学习了数组&#xff0c;可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多&#xff0c;下面是我学习的小结&#xf…

黄浦企业网站制作wordpress添加语系

添加系统用户 useradd samba 添加samba用户 smbpasswd -a samba 激活samba用户 smbpasswd -e samba 1.winr运行secpol.msc打开本地安全策略 2.安全策略->本地策略->安全选项 3.右侧找到 网络安全:LAN管理器身份验证级别 打开 &#xff0c;选择 仅发送NTLMv2响应&#xf…

app下载官方网站英文外贸网站制作

[vue] 说下你对指令的理解&#xff1f; 指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 (v-for 是例外情况&#xff0c;稍后我们再讨论)。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&a…

医院网站建设联系方式营销型网站建设公司排名

Typescript允许你覆盖它的判断&#xff0c;并且能以任何你想要的方式分析它&#xff0c;这种机制被称为类型断言。 类型断言的两种方式&#xff1a; 1.as关键字 interface SquareConfig {color?: string;width?: number; }function createSquare(config: SquareConfig) {/…