.Net
文章平均质量分 91
contact97
这个作者很懒,什么都没留下…
展开
-
ASP.NET Core Identity框架介绍与使用
这是因为框架底层已经根据权限设计设计了相应的表并提供了权限设计的相关接口,引入Identity框架后,调用框架提供的API就可以完成我们的业务逻辑。Identity (标识)框架:采用的是基于角色的访问控制策略(Role-Based-Controll-Access),内置了对用户、角色等表的管理以及相关的接口,支持外部登录、2FA等。Identity框架使用EFcore对数据库进行操作(默认使用的SqlServer的数据库),这也意味值标识框架几乎支持所有的数据库。其中 Tkey代表了主键的类型。原创 2024-05-18 15:53:08 · 600 阅读 · 0 评论 -
NetCore3.1 Controller中直接返回JObject对象抛出异常解决方案
在StartUp中的服务配置类中修改默认的关于序列化器的配置。运行单元测试方法后,发现Newtonsoft.Json可以正常序列化JObject对象,而System.Text.Json不能序列化JObject 类型的对象。因此需要替换到Web项目中的默认序列化器。这是因为在Web项目中,响应结果的的序列化器使用的System.Text.Json包下的。它无法直接序列化JObject类型的对象。在NetCore 3.1的Web项目中,Controller有一个方法直接返回JObject对象时,抛出了异常。原创 2024-03-28 13:57:18 · 513 阅读 · 0 评论 -
WebClient上载文件——实现将本地文件同步到远端服务器上
本片文章主要提供了一个本地文件同步到远端服务器的一个参考方法,如有其它的解决方案希望和大家一起共享。原创 2024-03-22 16:35:07 · 733 阅读 · 0 评论 -
C#多线程(5)——异步方法async与await
在上一章节中,为大家介绍了,TPL是从.NetFramwork4.0后引入的基于异步操作的一组API,核心关注于任务【Task和TaskT简化了我们异步编程的步骤,但在C#5.0时,引入了新的语言特性——异步方法,是一种语法糖,是TPL之上的更高级别的抽象,它遵循了基于任务的异步模式,仅仅只使用了async与await关键字,更加简化了异步编程,可以避免性能瓶颈并增强应用程序的总体响应能力。原创 2024-03-13 11:26:05 · 1054 阅读 · 0 评论 -
C#多线程(4)——任务并行库TPL
TPLTPL(Task Parallel Library)任务并行库,是从.NetFramwork4.0后引入的基于异步操作的一组API。TPL的底层是基于多线程实现的,但是它相较于直接使用多线程,更为简单,它向程序员隐藏了与线程池交互的底层代码。在.NetFramwork4.0后,微软更推荐程序员使用TPL去编写多线程代码或者并行代码。TPL的核心是任务,一个任务代表了一个异步操作,该操作可以使用或不适用独立的线程运行。原创 2024-03-06 15:41:31 · 1126 阅读 · 0 评论 -
C# 多线程(3)——线程池
线程是计算机宝贵的资源,频繁的创建和销毁线程将会大量的占用计算机资源(为每个线程单独分配内存空间,并且多线程下的CPU时间片的切换也会耗费一定的时间)。为了充分利用硬件资源以及避免线程过多的创建和销毁,可用利用线程池\textcolor{red}{线程池}线程池来管理工作线程。使用者把任务(需要执行的代码)交给线程池,也就是加入线程池的任务队列\textcolor{red}{任务队列}任务队列,工作线程完成之前的任务后,就继续从队列中取任务执行。原创 2024-03-01 16:14:16 · 1284 阅读 · 0 评论 -
NetCore实现输入用户名和密码后访问Swagger页面
在后端编程时,通常使用swagger文档来呈现接口文档。为了接口的安全性,可通过输入用户名和密码的方式来进行验证。本文介绍如何通过自定义中间件来实现访问接口文档前需要进行Basic认证。原创 2024-01-31 16:02:40 · 1185 阅读 · 0 评论 -
C# 多线程(2)——线程同步
当在同一时刻多个线程操作共享资源时就会导致数据的错误,但是如果在单一线程中按照顺序就不出现这样的问题,这也就引申出线程同步的内容,保证多个线程提升性能的前提下,也不会出现程式数据的错误,重点就是让多个线程按照一定的顺序同步的执行代码,就是线程同步的概念。lock 排它锁的使用,确保了多个线程在访问竞态代码块时,只有一个线程是获得CPU时间片的,其他的线程处于阻塞中,并处于一个等待队列中。直到锁被释放,等待的线程属于先到先得的情形,依次等待获得锁去执行竞态代码块,保证了线程同步,因此可以保证线程的安全。原创 2024-01-30 09:51:33 · 1128 阅读 · 0 评论 -
C# 多线程(1)——线程基础
进程是计算机概念,一个程序运用时占用的的所有**计算机资源**(CPU、内存、硬盘、网络)统称为进程。线程是操作系统中能够独立运行的最小单位,是进程(包含多个线程)中的一部分,线程也有自己的计算资源,多个线程间可以共享进程的资源。C#中的Thread其实是对计算机中线程概念的封装(API的封装),它的执行归根结底是向底层操作系统申请了线程资源。在C#中的线程实现包括 Thread/ThreadPool/Task/Await Async。多线程的本质是资源换性能(CPU、内存、硬盘、网络)。好处是提高利原创 2023-11-28 15:43:21 · 1185 阅读 · 0 评论 -
AspNetCore中的配置文件详解
除此之外,还提供其他的配置数据源 【不同的ConfigurationProvider】,允许系统从多个配置源中读取配置文件,如环境变量或者系统内存。真实项目中涉及的配置大都具有一个结构化的层次结构,所以在配置模型中的Configuration对象同样具有这样的结构。程序开发中,有些信息是要根据环境改变的,比如开发环境的数据库可能是本地数据,而生产环境下需要连接生产数据库,我们需要把这些信息放到程序外面,在程序运行时通过读取这些外部信息实现不改变程序代码适应不同环境的需求,这些信息就是“配置”。原创 2023-05-17 19:32:49 · 953 阅读 · 1 评论 -
AspNetCore中的中间件详解【超详细】
虽然中间件的本质是一个Func middleware 对象,中间件的类型可分为两种,下面自定义实现以及记录请求IP地址的中间件弱类型中间件(1) 定义Ip中间件//调用下一个请求中间件 await requestDelegate . Invoke(context);} }(2)增加Use的拓展方法。原创 2023-05-08 17:51:53 · 2371 阅读 · 0 评论 -
.Net开发——EFCore
EFCore(EntityFramworkCore)是对底层ADO.NET重新封装的一个数据操作框架,因此ADO.NET支持的多种数据库都可以被EFCore支持。EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:- 使 .NET 开发人员能够**使用 .NET 对象处理数据库**。- 避免SQL的编写。- 开发更加高效原创 2022-11-16 15:11:54 · 2710 阅读 · 0 评论 -
.Net学习——Nlog日志框架的使用
Net没有内置的文本日志提供者,对于实际需要记录日志到文本文件中的需求不相匹配,常用的第三方日志框架包括Log4Net,Nlog,SeriLog。考虑到系统的兼容性与使用的简易程度,推荐使用NLog框架记录系统运行日志记录。NLog是一个灵活且免费的日志记录平台,适用于各种.NET平台,包括.NET标准。NLog 使写入多个目标变得容易。(数据库、文件、控制台,调试输出,电子邮件,时间日志)并动态更改日志记录配置。易于配置NLog 非常容易配置,无论是通过配置文件还是以编程方式。原创 2022-11-12 17:27:39 · 2244 阅读 · 0 评论 -
.Net学习——Linq常用拓展方法使用
本文主要演示Linq常用拓展方法。包括Where(),Single(),SingleOrDefault(),First(),学会并掌握常用的Linq常用拓展方法,可以更快的处理数据源,语法逻辑与SQL类似。原创 2022-11-04 10:45:56 · 1158 阅读 · 0 评论 -
.Net学习——委托
委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。调用委托变量时,就是执行该变量指向的方法。委托与c#中的普通变量【如int i=5】类似,唯一区别在于委托指向方法,普通变量执向整数为5的空间委托声明决定了可由该委托引用的方法。委托可指向一个与其具有相同标签的方法。关键字 返回类型 委托的名称 参数列表。原创 2022-11-02 16:09:06 · 2627 阅读 · 0 评论