
学习笔记
文章平均质量分 69
fisea
这个作者很懒,什么都没留下…
展开
-
浅析HttpClient
文章目录一、IHttpClientFactory来CreateClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服务3.在ClientController中调用二、命名HttpClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服务3.在ClientController中调用三、类型 HttpClient1.构造IHttpClientFactory对象2.在ConfigureServices中注册服原创 2021-01-28 10:48:15 · 265 阅读 · 0 评论 -
浅析Mediator
文章目录一、轻松实现命令查询职责分离模式(CQRS)1.自定义命令类2.自定义实现IRequestHandler的类3.通过Send来调用CustomCommand二、让领域事件处理更加优雅1.自定义CustomEvent类继承INotification2.自定义实现INotificationHandler的类3.通过Publish来调用实现了INotificationHandler的类三、源码下载总结一、轻松实现命令查询职责分离模式(CQRS)1.自定义命令类代码如下(示例):class Cust原创 2021-01-28 10:28:15 · 502 阅读 · 0 评论 -
浅析中间件
文章目录一、Use二、Map三、MapWhen四、Run终极者中间件五、自定义中间件1.定义自定义中间件类2.定义UseCustomMiddleware扩展方法3.在Configure配置自定义中间件的扩展方法六、源码下载一、Use代码如下(示例): app.Use(async (ctx, next) => { //await ctx.Response.WriteAsync("Hello");原创 2021-01-22 18:02:37 · 277 阅读 · 1 评论 -
浅析文件提供程序
文章目录一、PhysicalFileProvider二、EmbeddedFileProvider三、CompositeFileProvider四、源码下载一、PhysicalFileProvider物理文件代码如下(示例): IFileProvider fileProvider1 = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory); var contents = fileProvider1.Get原创 2021-01-22 14:33:26 · 286 阅读 · 0 评论 -
路由和终结点
文章目录一、路由注册方式1.路由模板的方式2.RouteAttribute 方式二、路由约束1.是否必选2.正则表达式3.范围约束4.自定义 IRouteConstraint三、URL 生成1.LinkGenerator来生成url2.LinkGenerator来生成path四、源码下载一、路由注册方式1.路由模板的方式代码如下(示例): [HttpGet("{name:required}")] [Obsolete] public bool Require(strin原创 2021-01-22 11:01:08 · 224 阅读 · 0 评论 -
浅析静态文件中间件
文章目录一、/就是wwwroot的根目录二、目录形式显示文件1.在ConfigureServices注入2.在Configure配置三、文件目录映射为url地址四、MapWhen形式五、源码下载一、/就是wwwroot的根目录app.UseDefaultFiles();//默认就是根目录的index,DefaultFileNames里面包含了indexapp.UseStaticFiles();// /就是wwwroot的根目录会导航到wwwroot下的index.html二、目录形式显示文件1原创 2021-01-21 17:49:26 · 254 阅读 · 0 评论 -
日志框架的基本使用
文章目录一、控制台形式1.依赖注入2.appsettings.json定义配置节点3.泛型方式二、作用域形式1.在appsettings.json文件中开启作用域2.使用BeginScope形式调用三、结构化形式1.Serilog.AspNetCore包2.上端调用四、源码下载一、控制台形式1.依赖注入代码如下(示例):using Microsoft.Extensions.Logging;using System;using System.Collections.Generic;using S原创 2021-01-20 15:28:08 · 287 阅读 · 1 评论 -
异常处理
文章目录一、异常处理页1.引入库二、使用步骤1.引入库2.读入数据总结一、异常处理页1.引入库代码如下(示例)二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default原创 2021-01-19 11:01:21 · 228 阅读 · 0 评论 -
几种不同给的校验数据方式
文章目录一、直接注册Validate验证函数二、实现 IValidateOptions接口1.编写实现接口 IValidateOptions类2.添加拓展方法来注册校验服务三、使用 Microsoft.Extensions.Options.DataAnnotations1.编写校验特性2.注入ValidateDataAnnotationsDataAnnotations四、源码下载一、直接注册Validate验证函数代码如下(示例): public static IServiceColle原创 2021-01-15 10:41:43 · 268 阅读 · 0 评论 -
浅析选项框架
文章目录一、IOption1.构造函数注入IOptions2.添加扩展方法3.ConfigureServices注入服务二、IOptionsSnapshot1.构造函数注入IOptionsSnapshot2.添加扩展方法3.ConfigureServices注入服务三、IOptionsMonitor1.构造函数注入IOptionsMonitor2.添加扩展方法3.ConfigureServices注入服务四、源码下载一、IOption一般用于读取配置文件的值,每次请求都是读取的是相同的值。1.构造函数原创 2021-01-14 17:52:59 · 295 阅读 · 0 评论 -
配置框架研究
文章目录一、Key/Valve形式二、CommandLine形式1.调试Tab中配置2.命令格式支持总结一、Key/Valve形式代码如下(示例): static void Main(string[] args) { IConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(new Dictionary<str原创 2021-01-13 15:57:50 · 203 阅读 · 0 评论 -
Autofac的使用
文章目录一、注入方式1.一般普通方式注入2.基于Name注入3.基于属性注入4.基于动态代理的 AOP5.子容器二、使用步骤1.引入库2.注入接口IServiceProviderFactory3.ConfigureContainer实现4.测试获取实例二、源码下载总结一、注入方式1.一般普通方式注入代码如下(示例):builder.RegisterType<ClientService>().As<IService>();//默认是瞬时的2.基于Name注入代码如下(示例原创 2021-01-08 17:37:30 · 362 阅读 · 0 评论 -
作用域和对象释放行为
文章目录一、根容器和子容器1.根容器2.子容器二、实现 IDisposable 接口类型的释放1.DI 只负责释放由其创建的对象实例2.读入数据总结一、根容器和子容器1.根容器根容器是由通过ServiceCollection Build出的容器。2.子容器子容器是由容器创建出来的。RequestService是指ASP.NET Core框架为每个HTTP请求创建的子容器,就是当前请求的容器。代码如下(示例): using (IServiceScope serviceScope = HttpC原创 2021-01-08 11:18:41 · 441 阅读 · 0 评论 -
依赖注入
依赖注入一、为什么要实现依赖注入?二、生命周期1.单例 Singleton2.作用域 Scoped2.瞬时(暂时) Transient三、注册方式1.花式注册2.尝试注册3.注册泛型模板4.Remove&Replace四、实例获取方式1.通过标注FromServices2.通过构造函数五、源码下载总结一、为什么要实现依赖注入?第一:可以轻松管理类之间的依赖,帮助在构建应用时遵循设计原则,确保代码的可维护性和可扩展性。第二:ASP.NET Core 的整个架构中,依赖注入框架提供了对象创建和生命原创 2021-01-05 17:35:19 · 243 阅读 · 0 评论 -
.NetCore的启动过程
启动过程一、启动执行顺序1.ConfigureWebHostDefaults2.ConfigureHostConfiguration3.ConfigureAppConfiguration4.ConfigureServices5.ConfigureLogging6.Startup7.ConfigureServices8.Configure二、源码下载一、启动执行顺序1.ConfigureWebHostDefaults一般是配置组件和容器的组件2.ConfigureHostConfiguration配原创 2021-01-05 14:54:38 · 1297 阅读 · 0 评论 -
Rabbit基础概念
Rabbit基础概念一、分布式异步队列1.优点2.缺点二、Exchange1.Direct Exchange2.Fanout Exchange3.Topic Exchange4.Header Exchange三、消息不丢可靠性保证1.消息持久化2.生产端消息确认3.消费端的消息确认一、分布式异步队列1.优点异步处理,响应快,增加了数据库服务器的承载能力;削峰,把流量的高峰分解到不同的时间段来处理;解耦(扩展性就更强),让UI和业务独立演化;高可用,如果某一个处理器发生了故障,对其他原创 2021-01-05 10:53:53 · 1177 阅读 · 0 评论 -
EFCore实现读写分离
读写分离一、数据访问层接口1.接口定义2.接口实现3.读写操作枚举类设计4.连接字符串读取设计5.DBContext拓展6.获取DBContext接口设计7.获取DBContext接口实现8.DBContext动态替换连接二、上端数据库连接字符串配置三、源码下载一、数据访问层接口1.接口定义代码如下(示例):using EFCoreDemo.CodeFirst.Migrations.Extend;using System;namespace EFCoreDemo.CodeFirst.IServ原创 2020-12-30 14:25:54 · 1836 阅读 · 2 评论 -
Rabbit消息队列环境搭建
环境搭建一、安装包准备1.Erlang语言运行环境2.RabbitMQ安装包二、搭建步骤1.安装esl-erlang_22.1_windows_amd642.配置环境变量总结一、安装包准备1.Erlang语言运行环境在windows下就是esl-erlang_22.1_windows_amd64安装包下载2.RabbitMQ安装包比如windows版本就是rabbitmq_server-3.8.3下载二、搭建步骤1.安装esl-erlang_22.1_windows_amd64记住安装原创 2020-12-28 23:29:01 · 289 阅读 · 0 评论 -
EFCore初探
EFCore初探一、如何使用DBFirst1.引入包2.程序包控制台执行3.添加日志框架二、如何在CodeFirst中做数据迁移1.定义数据库实体模型2.定义DBContext3.引入包4.在程序包管理控制台执行如下命令三、如何延迟加载1.引入包2.测试样例四、表关系映射1.一对一关系映射2.一对多关系映射3.多对多关系映射五、源码下载总结一、如何使用DBFirst1.引入包代码如下(示例):Microsoft.EntityFrameworkCore Microsoft.EntityFramewo原创 2020-12-28 09:52:51 · 347 阅读 · 0 评论 -
EF 中的导航属性和事务
EF高级用法一、DBContext生命周期1.数据库连接2.实现了IDisposable接口3.SaveChanges方法4.建议用法二、延迟加载(懒加载)/贪婪加载1.原理解析2.延迟查询在Linq中的使用3.AsQueryable&AsEnumerable三、导航属性1.带有主外键关系2.Inculude方法来贪婪加载3.自增Id自动填充三、事务/分布式事务1.SaveChanges会开启事务2.BeginTransaction3.TransactionScope4.分布式事务四、源码下载一原创 2020-12-26 11:17:23 · 979 阅读 · 0 评论 -
EF状态跟踪和Cache
状态跟踪和Cache一、状态跟踪是什么?二、测试步骤1.实体各种状态变化2.Attach后实体状态变化3.Attach后,Find后实体状态变化4.AsNoTracking使用三、性能提升点1.Cache使用2.按需更新四、源码下载总结一、状态跟踪是什么?要提交到数据库中的对象和DBContext对象存在某种关系:对象是否给Context跟踪;一次SaveChanges 就把在DBContext中的所有操作都提交到数据库中去了,SaveChange就是以Context为维度的。官方对实体的各种状态变原创 2020-12-23 16:35:31 · 696 阅读 · 0 评论 -
EF中Linq的用法
Linq用法举例1.In操作2.分页3.Like4.Join5.LeftJoin6.UpdateInfoBySql7.QueryDataBySql8.Sub Query9.Group by10.Max11.Min12.Avg13.Count14.Group by 带有Where条件15.多列Group by16.Group by expression17.Any18.Any中带有where条件19.All20.Not Contain21.Group by后,求Min值总结用法举例1.In操作代码如下(原创 2020-12-23 09:25:13 · 2330 阅读 · 0 评论 -
EF映射之三:CodeFirst
CodeFirst一、CodeFirst是什么?二、使用步骤1.创建实体和DBContext对象2.在项目中添加EntityFramework包3.写测试来触发OnModelCreating三、映射策略1.CreateDatabaseIfNotExists2.DropCreateDatabaseAlways3.DropCreateDatabaseIfModelChanges四、源码下载一、CodeFirst是什么?先写数据库实体代码和DBContext对象,然后业务逻辑,通过代码来生成数据库。二、使原创 2020-12-20 18:32:28 · 727 阅读 · 0 评论 -
EF映射之二:CodeFirstFromDB
CodeFirstFromDB一、CodeFirstFromDB是什么?二、使用步骤1.创建数据库2.在项目中选择【数据】->[ADO.NET实体模型]3.选择模型内容和数据连接3.选择数据库对象三、映射方式1.特性映射2.OnModelCreating映射3.定义Mapping配置类四、源码下载总结一、CodeFirstFromDB是什么?先创建数据库,然后根据数据库中的对象(表、视图)来映射不同的实体,不支持存储过程、函数。二、使用步骤1.创建数据库样例如下:USE [EFDBFir原创 2020-12-20 14:05:52 · 388 阅读 · 0 评论 -
密码强度检测
密码强度检测 function chkpwd(obj){ var t=obj.value; var id=getResult(t); //定义对应的消息提示 var msg=new Array(4); msg[0]="密码过短。"; msg[1]="密码强度差。"; msg[2]="密码强度良好。"; msg[3]="密码强度高。"; var sty=new Array原创 2009-11-08 12:38:00 · 394 阅读 · 0 评论 -
不能在DropDownList 中选择多个项
一开始以为是库中数据及业务逻辑有问题,检查后发现没啥,找了找DropdownList的帮助,终于发现了一个好东西。ClearSelection()加上它不会出现问题了:dropCurrenceType.ClearSelection();另外:有些朋友问及到当作更新时的数据如何绑定在Dropdownlist中,其实也很简单的 dropCurrenceType.Items.FindByV原创 2009-07-04 17:05:00 · 894 阅读 · 0 评论 -
无法获得dropdownlist里面的值
if(!IsPostBack) { 调用绑定dropdownlist1的方法; } 如果没加if(!IsPostBack)的话,你每次点一个按纽都会重新绑定一次dropdownlist,所以你得到的永远就是第一个选项的值了原创 2009-06-30 12:29:00 · 639 阅读 · 0 评论 -
GridView绑定记录为空显示表头
protected void btnQuery_Click(object sender, EventArgs e) { string queryCondition = "1=1"; string name = this.tbName.Text.Trim(); string idCode = this.tbIDCode.Text.Trim();原创 2009-06-30 18:05:00 · 475 阅读 · 0 评论 -
在GridView中以自己的模式显示数据库中的bool字段
> >原创 2009-06-30 17:07:00 · 764 阅读 · 0 评论 -
gridVew传多值到下个页面
protected void gvShowOut_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { 一: e.Row.Attributes["ondblclick"] = String原创 2009-07-01 09:29:00 · 551 阅读 · 0 评论 -
href
1、href中从一个页面向另一个页面传多个参数&password=>modify 不要加空格. 如仍不对,请检查一下源文件中链接中password的值. 2、 是链接到网页里的某一个书签上. 链接到meizz书签处 sfs sfsd asfds fasfasf 光#空连接,连到网页头上原创 2009-06-10 12:02:00 · 483 阅读 · 0 评论