厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
[Asp.Net Core]ActionFilter做日志
1.记录日志,action比较靠近Action,日志记录,可以记录到Action内部做的一些处理2.通过Log4net完成日志记录,需简要注入Logger private ILogger<CustomActionFilterAttribute> _iLogger = null; public CustomActionFilterAttribute(ILogger<CustomActionFilterAttribute> logger)原创 2021-12-09 13:48:35 · 630 阅读 · 0 评论 -
[Asp.Net Core]NET5_ActionFilter的多种扩展
1.通过实现IActionFilter接口来完成扩展 public class CustomActionFilterAttribute : Attribute, IActionFilter { /// <summary> /// 方法被构造 /// </summary> /// <param name="context"></param> public void O原创 2021-12-09 08:52:20 · 287 阅读 · 0 评论 -
[Asp.Net Core]ActionFilter的特点
ActionFilter的特点AOP 5个FilterActionFilter的特点1.执行控制器构造函数2.执行CustomActionFilterAttribute 内的OnActionExecuting方法3.执行Action4.执行CustomActionFilterAttribute 内的OnActionExecutedAOP 5个FilterAOP:可以在不修改之前的代码为基础,可以动态的增加新功能;AuthorizationFilter 鉴权授权ResourceFilter 资源Ex原创 2021-12-07 09:40:08 · 434 阅读 · 0 评论 -
[Asp.Net Core]Autofac单抽象多实例属性注入
Autofac单抽象多实例属性注入1.道理和上面一样,可以把Autofac 上下文当做属性来注入2.在使用的时候,通过Autofac上下文+不同注册的标识,获取到不同的具体实例1.道理和上面一样,可以把Autofac 上下文当做属性来注入2.在使用的时候,通过Autofac上下文+不同注册的标识,获取到不同的具体实例 [CustomPropertyAttribute] private ITestServiceA iTestServiceAA { get; set; }原创 2021-12-06 13:59:29 · 528 阅读 · 0 评论 -
[Asp.Net Core]Autofac单抽象多实现构造函数注入
Autofac单抽象多实现构造函数注入1.注册的时候可以指定一个标识2.在控制器中获取的时候获取一个Autofac的上下文,通过上下文+标识,得到不同的实现的实例;3.预览1.注册的时候可以指定一个标识 #region 一个接口多个实现 containerBuilder.RegisterType<TestServiceA>().Named<ITestServiceA>("TestServiceA"); cont原创 2021-12-06 08:52:55 · 574 阅读 · 0 评论 -
[Asp.Net Core] Autofac支持AOP-2
1.EnableInterfaceInterceptors+抽象标记特性[Intercept(typeof(CustomAutofacAop))] ,只要是实现了这个抽象就可以支持AOP2.EnableClassInterceptors + 实现类标记特性[Intercept(typeof(CustomAutofacAop))] ,只有标记了这个特性的,才能够支持AOP如果使用EnableClassInterceptors 来支持AOP,实现类中支持AOP的方法必须为虚方法3.具体实现中标记特性4.原创 2021-12-03 09:50:24 · 329 阅读 · 0 评论 -
[Asp.Net Core]Autofac抽象支持AOP
AOP面向切面编程;不用修改之前代码的基础上,可以动态的在某个动作之前加一些操作,动态在在某一个动作之后做点什么事儿1.Nuget引入Castle.Core程序集+Autofac.Extras.DynamicProxy程序集2.定注意切入者:如下,需要继承IInterceptor,实现方法namespace DeZai.Net5Demo.Common.AutofacExtension{ public class CustomAutofacAop : IInterceptor原创 2021-12-02 09:36:24 · 416 阅读 · 0 评论 -
[Asp.Net Core]Autofac抽象多实现的问题
Autofac抽象多实现的问题增加一个抽象实现1.一个抽象多个实例,都注册了,通过构造函数用抽象类型来获取实例,哪个后面注册就获取到哪一个;覆盖型;2.一个抽象多个实例,都注册了,可以通过一个IEnumerable<抽象>,当做构造函数参数,可以获取到所3.注册一个抽象的多个实例资源,如下方式注册,可以在控制器的构造函数中,使用具体实现类型作为参数类型,可以匹配到不同到具体类型实例4. 需要分类增加一个抽象实现1.一个抽象多个实例,都注册了,通过构造函数用抽象类型来获取实例,哪个后面注册就原创 2021-12-01 09:12:09 · 446 阅读 · 0 评论 -
[Asp.Net Core]NET5_Autofac控制器属性注入
NET5_Autofac控制器属性注入控制器是一个类,控制器的实例其实是IControllerActivator来创建的;1.得让控制器使用容器来获取实例;2.注册控制器抽象和具体的关系4.扩展,自己控制究竟哪些属性需要做依赖注入控制器是一个类,控制器的实例其实是IControllerActivator来创建的;1.得让控制器使用容器来获取实例;#region 指定控制器实例让容器来创建services.Replace(ServiceDescriptor.Transient<IControll原创 2021-11-30 14:20:15 · 777 阅读 · 0 评论 -
[Asp.Net Core]Autofac整合.NET5 MVC
整合.NET5 MVC1.指定Autofac工厂替换默认工厂,Program指定2.在Startup类增加ConfigureContainer 方法, 注册关系3.通过控制器构造函数注入,获取实例4.ServiceCollection注册的服务也可以让Autofac使用,因为Autofac在自己注册服务之前;会先把ServiceCollection中注册的服务全部接管过来;1.指定Autofac工厂替换默认工厂,Program指定 public static IHostBuilder Cr原创 2021-11-29 09:19:10 · 242 阅读 · 0 评论 -
[Asp.Net Core]Autofac支持配置文件
Autofac支持配置文件1.Nuget引入程序集准备配置文件atuofac.json3.读取配置文件,根据配置文件信息,生成抽象和映射信息1.Nuget引入程序集Autofac.Extensions.DependencyInjectionAutofac.ConfigurationAutofac准备配置文件atuofac.json3.读取配置文件,根据配置文件信息,生成抽象和映射信息 #region Autofac 支持配置文件 {原创 2021-11-26 15:01:34 · 1032 阅读 · 0 评论 -
[Asp.Net Core]Autaofa的生命周期
Autaofa的生命周期 #region Autaofa的生命周期 { ////生命周期范围 //ContainerBuilder containerBuilder = new ContainerBuilder(); //IContainer container = containerBuilder.Build(); //using原创 2021-11-25 09:19:40 · 240 阅读 · 0 评论 -
[Asp.Net Core]Autofac多种注入
具体实现 [Intercept(typeof(CustomAutofacAop))] public class TestServiceA : ITestServiceA { public TestServiceA() { Console.WriteLine($"{this.GetType().Name}被构造。。。"); } public virtual void Show()原创 2021-11-24 10:49:36 · 877 阅读 · 0 评论 -
[Asp.Net Core]Autofac初识
初识:Autofa也是一款很流行的IOC容器:那如何使用? 第三方的IOC容器;1.Nuget引入程序包2.创建一个ContainerBuilderContainerBuilder containerBuilder = new ContainerBuilder(); //创建容器3.注册抽象和实现关系 containerBuilder.RegisterType<TestServiceA>().As<ITestServiceA>(); //注册抽象和实现关系4.Bu原创 2021-11-24 08:58:23 · 513 阅读 · 0 评论 -
[Asp.Net Core]内置容器生命周期
内置容器生命周期瞬时生命周期:每一次getService获取的实例都是不同的实例单例生命周期,在整个进程中获取的都是同一个实例作用域生命周期;同一个作用域,获取的是同一个对象的实例;不同的作用域,获取的是不同的对象实例瞬时生命周期:每一次getService获取的实例都是不同的实例 IServiceCollection serviceCollection = new ServiceCollection(); serviceCollection原创 2021-11-23 15:12:27 · 803 阅读 · 0 评论 -
[Asp.Net Core]内置容器基本使用
内置容器基本使用准备接口和服务传统工艺IOC容器IServiceCollection第一种方式:1.在Startup中的ConfigureServices 方法中注册服务2.在需要使用的控制器中,通过构造函数,定义服务的抽象类型,作为参数,在运行时,自动得到服务的具体;3..调用服务内部的方法第二种方式:第三种方式;总结准备接口和服务1.抽象接口 public interface ITestServiceA { void Show(); }``2.实现接口服务原创 2021-11-23 09:15:13 · 742 阅读 · 0 评论 -
[Asp.Net Core]视图组件扩展定制
视图组件扩展定制视图组件如何自定义视图组件?二、使用步骤视图组件1.呈现页面响应的某一部分而不是整个响应2.包括在控制器和视图之间发现的关注分离和可测试性优势3.可以具有参数和业务逻辑4.通常在页面布局中调用如何自定义视图组件?二、使用步骤1.Razor组件对应的类需要以ViewComponent结尾2.继承ViewComponent类3.定义一个异步版本的InvokeAsync 可以自定义参数4.InvokeAsync就是返回组件内容的方法代码如下(示例): public原创 2021-11-22 20:56:30 · 471 阅读 · 0 评论 -
[Asp.net Core]局部视图
局部视图一、可以增加代码的重用二、如何定义:1.添加一个cshtml文件2.在页面中调用局部视图:@html.Partial("局部视图的名称")一、可以增加代码的重用二、如何定义:1.添加一个cshtml文件代码如下(示例):@using DeZai.Net5Demo.Utility.RazorExtension@{ ViewData["Title"] = "Index";}<h1>this is fourth page</h1>@Html.Partial原创 2021-11-22 10:21:34 · 518 阅读 · 0 评论 -
[Asp.Net Core]NET5_Razor扩展01
NET5_Razor扩展01@HtmlHelper&UrlHelper帮助类1.基本用法2.预览一、自定义扩展方法一1.查看系统自带@Html.ActionLink 方法2.自定义扩展方法3. @Html.方法()调用4. 预览测试二、自定扩展方法二总结@HtmlHelper&UrlHelper帮助类1.基本用法@Html.ActionLink("LinkText", "RazorShow")@Html.ActionLink("带控制器", "ActionName", "Contr原创 2021-11-21 22:24:56 · 620 阅读 · 0 评论 -
[Asp.Net Core]MVC_Razor布局
MVC_Razor布局前言一、Content1.我们在index页面中写如下代码:2.预览3. 默认自动加载Layout模板页(可去除)4.母版页内容与执行顺序5.模板页面修改与效果二、页面如何是否可以调用母版页的JS?1.页面测试JS代码2.预览测试3.原因分析三、如何实现页面调用模板中的JS总结解决方案1. 在母版页中,标记 @await RenderSectionAsync("Scripts", required: false)2. 在返回页面中,标记@section Scripts{} 把js代码写原创 2021-11-21 08:35:13 · 1197 阅读 · 0 评论 -
[Asp.Net Core]MVC开发&解读Razor混编
MVC开发1.什么是MVC?V-视图------呈现给用户看到的内容(表现层)C-控制器----控制业务逻辑计算,调用服务,选择返回什么内容,可以返回视图,JSON,字符串等等M-视图模型—用作控制器和视图之间传递数据的载体2.修改视图,增加了Html代码,不能马上生效,那么办?必须要编译后方可生效的问题,如何解决? #region 解决修改视图内容,必须编译后方可生效的问题 //1.Nuget安装:Microsoft.AspNetCore.Mvc.原创 2021-11-20 07:44:45 · 688 阅读 · 0 评论 -
[Asp.Net Core] 命令行参数读取+配置多种读取
命令行参数读取+配置多种读取静态文件读取+脚本参数一、静态文件读取1、还原状态2、读取静态文件的中间件3、预览测试二、脚本参数1 、命令行参数2.读入数据总结静态文件读取+脚本参数一、静态文件读取1、还原状态拷贝项目中的WWWROOT文件夹后还是存在异常:2、读取静态文件的中间件Startup.cs 配置文件 //读取静态文件的中间件 //Nuget引入Microsoft.Extensions.FileProviders原创 2021-11-19 15:11:55 · 1608 阅读 · 0 评论 -
[Asp.Net Core]Session的使用
Asp.Net Core中Session使用前言二、使用步骤1.Controller2.View显示3.解决异常:未注册中间件总结前言web程序中,Session是一个无法避开的点。最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session。新建的asp.net core的模板已经包含了Session的库,二、使用步骤1.Controller代码如下(示例): public IActionResult Index() {原创 2021-11-19 10:47:34 · 1136 阅读 · 0 评论 -
[Asp.Net Core]IIS部署
Asp.Net CoreIIS部署IIS 安装(程序和功能添加IIS)部署虚拟目录路径直接关联项目虚拟目录路径直接发布项目(1) 发布文件夹![在这里插入图片描述](https://img-blog.csdnimg.cn/f55764db51754a4598fb264b0e810343.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Y6m6Zeo5b635LuU,size_20原创 2021-11-19 09:23:59 · 990 阅读 · 0 评论 -
[Asp.Net Core]log4net组件使用
1、概述log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2019 ,ASP.NET Core中使用log4net快速创建系统日志,如何扩展以输出自定义字段2、一个简单的使用实例第一步:NuNet包管理器下载安装log4net和Microsoft.Extensions.Logging.Log4Net.AspNetCore第二步:方法一:Progra原创 2021-11-17 22:51:44 · 444 阅读 · 0 评论