C#遗忘系列
文章平均质量分 52
C#遗忘系列
忧郁的蛋~
网站建设,软件开发,系统集成
展开
-
asp.net core调用wps实现word转pdf的方法
asp.net core也可以问题根本原因是路径的问题,不能些相对路径,必须绝对路径。如果发现还是不行,最后换成.net framework 4.8的控制台项目。准备一个word文档,名字叫001.docx,随便编写一些文字内容。添加dll的引用,dll需要去安装的wps里面查找。添加com引用,搜索wps。要选择一下32位程序。原创 2024-09-16 20:52:26 · 705 阅读 · 28 评论 -
asp.net MVC 根据菜单树类别不同动态加载视图的实现步骤
这样,当用户访问不同的菜单项时,ASP.NET MVC 将根据类别加载相应的视图,并显示特定类别的内容。在视图中,根据每个菜单项的类别动态加载对应的部分视图。如果你想在用户点击菜单项时动态加载部分视图,可以使用 Ajax。这样,点击菜单项时,将通过 Ajax 请求加载相应的视图内容。动态加载视图,确保视图根据菜单项的类别正确显示。在控制器中,构建你的菜单树,并传递给视图。首先,创建不同类别的部分视图。创建与每个类别对应的部分视图,例如。其他类别的部分视图可以类似创建。属性,表示菜单项的类别。原创 2024-09-11 22:59:52 · 384 阅读 · 18 评论 -
在.NET6中使用配置Quartz.NET定时任务并使用IHostedService实现项目启动自动加载任务
Quartz.Net是一个强大、开源、轻量的作业调度框架,在平时的项目开发当中也会时不时的需要运用到定时调度方面的功能,如果每天需要跑任务的话,你肯定不会写个while循环,里面进行任务作业吧,这样是很耗线程的,很耗资源的。所以就有目前的定时任务框架。以上就是我之前在项目中使用定时任务的一些逻辑和代码,当然了我还参照了目前的开源项目 https://gitee.com/hzy6/hzy-quartz 一些设计思想和代码,基本上在项目中可以随便使用。具体的一些执行逻辑就可以自己去写。原创 2024-09-06 10:05:33 · 1122 阅读 · 15 评论 -
Asp.net实现手写验证码的操作代码
众所周知,一般我们日常碰到的验证码是一个图形样式的,列入这个样子的,那么在这个图片里面我们想实现我们自己界面上有这样的一个验证码就需要做两个操作,一个是在我们自己界面上生成如图所示的一个验证码图片,第二个操作就是将验证码里面的字符和用户输入的字符对比。这篇文章主要介绍了Asp.net实现手写验证码的操作代码,首先我们来实现生成 生成验证码的这一部分,这时候我们需要封装一个类,里面有生成图片和字符的方法,其实本质上就是一个随机数,这个类卸载Model里面即可,具体操作代码跟随小编一起看看吧。原创 2024-08-04 23:02:32 · 365 阅读 · 7 评论 -
ASP.NET Core Web中使用AutoMapper进行对象映射
在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂、庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的映射,从而减少大量的开发工作量,提高开发工作效率。今天我们来讲讲在ASP.NET Core Web中使用AutoMapper快速进行对象映射。原创 2024-07-25 00:02:56 · 823 阅读 · 10 评论 -
.Net8.0 WebApi发布到IIS详细步骤
NET 8 是微软于2021年8月24日宣布的下一代编程语言和框架,它是 .NET 的一部分,与 C# (Common Language Infrastructure) 紧密集成。.NET 8 还支持本机 (native) AOT (Ahead-Of-Time) 编译,以提高性能和启动速度。启用32位应用程序,默认False 本文改为 True,本文实际测试过程中,True和False没有区别。点击确定,在新的应用程序池上右键--高级设置。打开要发布的项目,在项目右键点击发布。原创 2024-07-18 23:45:40 · 657 阅读 · 7 评论 -
DotNET使用原生方法实现文件的压缩和解压
在.NET中实现文件或文件目录压缩和解压可以通过多种方式来完成,包括使用原生方法(System.IO.Compression命名空间中的类等)。本文我们主要讲的是如何使用.NET原生方法命名空间中的类来对文件和文件夹进行压缩或解压缩(压缩格式.zip文件格式。原创 2024-07-09 14:31:59 · 1048 阅读 · 9 评论 -
DotNet实现手写验证码的操作代码
众所周知,一般我们日常碰到的验证码是一个图形样式的,列如这个样子的,那么在这个图片里面我们想实现我们自己界面上有这样的一个验证码就需要做两个操作,一个是在我们自己界面上生成如图所示的一个验证码图片,第二个操作就是将验证码里面的字符和用户输入的字符对比。首先我们来实现生成 生成验证码的这一部分,这时候我们需要封装一个类,里面有生成图片和字符的方法,其实本质上就是一个随机数,这个类写到Model里面即可。然后我们需要在我们需要的控制器里面调用这个类,用户比较的时候就拿第二个方法里面的字符去比较就可以了。原创 2024-05-27 23:06:49 · 450 阅读 · 9 评论 -
Autofac的几种方式
具体来说,UseServiceProviderFactory 方法接受一个实现了 IServiceProviderFactory 接口的容器工厂实例作为参数。通过使用不同的容器工厂,可以使用第三方的依赖注入容器(如 Autofac、Ninject 等),以替代默认的 ASP.NET Core 依赖注入容器。CreateBuilder 方法将在应用程序启动时被调用,用于创建容器构建器,以及在其中进行服务的注册和配置。3:接口和派生类(业务层面)原创 2024-05-08 15:02:11 · 387 阅读 · 7 评论 -
Autofac:一个轻量级的依赖注入(DI)框架
在此示例中,我们创建了一个 MyController 类,并在其中使用 Inject 属性注解标记了一个 IMyService 类型的属性 MyService。在此示例中,我们首先创建了注册器 builder,并向其注册了一个 MyService 类型作为 IMyService 接口的实现。Autofac 是一个轻量级的依赖注入(DI)框架,它可以帮助 .NET 开发人员更好地管理对象的生命周期和依赖关系。除了普通的组件注册外,Autofac 还支持多种不同的注册方式,如 XML 配置文件、属性注解等。原创 2024-05-06 17:24:13 · 509 阅读 · 6 评论 -
C#中Eval()日期时间的格式化
【代码】C#中Eval()日期时间的格式化。原创 2024-04-25 10:57:33 · 304 阅读 · 3 评论 -
扩展Web.config配置文件里的appSettings节点和connectionStrings节点配置项过多,提取出来独立配置
在Web.config配置文件里的configuration节点下》这样写你的 connectionStrings。在Web.config配置文件里的configuration节点下》这样写你的 appSettings。我们拿 Web.config配置文件里的configuration》appSettings》举例。然后在项目根目录的“Configs”文件夹下新建一个database.config配置文件。然后在项目根目录的“Configs”文件夹下新建一个system.config配置文件。原创 2024-04-24 13:11:31 · 322 阅读 · 2 评论 -
Entity Framework 数据转换层通用类
首先通过反射获取主实体的主键Id,然后建立EntityKey对象,再通过 ObjectContext.GetObjectByKey(entityKey)方法在当前上下文当中获取此实体,最后通过 ObjectContext.ApplyCurrentValues 方法,把新加入的实体的属性复制当前上下文。此时使用类似的方法,利用 RelatedEnd.Load() 把导航属性提前加入到上下文中,再删除Company对象时,系统就可以把对应 Position 对象一并删除。原创 2024-04-19 23:57:45 · 995 阅读 · 6 评论 -
深入探讨C#中的递归算法
在C#中,实现递归算法有直接递归和间接递归两种方式。因此,在使用递归算法时,需要合理处理递归终止条件,并对问题规模进行评估,以确保算法的正确性和效率。递归算法通常用于解决重复性的问题。间接递归是指在函数或方法的实现过程中,调用了其他函数或方法,而这些函数或方法又直接或间接地调用了自身。因此,在使用递归算法时,需要注意递归的层数和问题规模,以及对递归终止条件的合理处理,以避免资源浪费和性能问题。当n等于0或1时,递归终止,否则继续进行递归调用。在C#中,实现递归算法主要有两种方式:直接递归和间接递归。原创 2024-03-08 21:18:19 · 1042 阅读 · 1 评论 -
深入了解C#中的PropertyInfo类
通过PropertyInfo类,我们可以方便地获取属性的名称、类型和访问权限,并且可以通过反射机制动态地读取和写入属性的值。在实际开发中,PropertyInfo类的灵活使用可以帮助我们更好地操作对象的属性,提升编程的效率和灵活性。通过PropertyInfo类,我们能够获取属性的名称、类型、访问权限等信息,并可以通过反射机制进行动态的读取和写入属性的值。除了获取属性的名称和类型外,PropertyInfo类还提供了GetValue和SetValue方法来动态的读取和写入属性的值。获取属性的名称和类型。原创 2024-03-05 21:55:53 · 1573 阅读 · 5 评论 -
ASP.NET Core (.NET 7) 中的速率限制中间件
ASP.NET Core 中的速率限制中间件可以用于限制特定资源在一段时间内允许的请求次数。速率限制可以用于保护服务器资源,防止拒绝服务 (DoS) 攻击。Microsoft.AspNetCore.RateLimiting 或 AspNetCoreRateLimit 中间件提供速率限制中间件。应用可配置速率限制策略,然后将策略附加到终结点。转载 2024-02-07 13:44:18 · 490 阅读 · 4 评论 -
C#实现 Windows 11 快捷键切换声音输出设备
Windows 11上使用.NET(C#) 实现通过快捷键切换声音输出设备的功能,需要能够实现监听全局快捷键,和切换声音输入设备的方法。而切换声音输入设备的功能,需要通过使用Core Audio API进行实现。然而,直接从.NET访问这些底层API需要使用P/Invoke(平台调用服务)来调用Windows的非托管API,这可能相对复杂且容易出错。一般需要使用第三方库来简化实现过程,本文主要介绍.NET(C#) 中实现 Windows 11 快捷键切换声音输出设备方法。原创 2024-02-06 11:17:42 · 974 阅读 · 1 评论 -
C#使用Stopwatch实现执行耗时及性能监测
1)命名空间2)字段字段字段说明Frequency获取以每秒刻度数表示的计时器频率。此字段为只读。指示计时器是否基于高分辨率性能计数器。此字段为只读。3)属性属性属性说明Elapsed获取当前实例测量得出的总运行时间。获取当前实例测量得出的总运行时间(以毫秒为单位)。获取当前实例测量得出的总运行时间(用计时器刻度表示)。IsRunning获取一个值,该值表示 Stopwatch 计时器是否正在运行。4)方法方法方法说明确定指定对象是否等于当前对象。原创 2024-01-16 23:54:58 · 1899 阅读 · 5 评论 -
.NET 7(C#)配置使用log4net日志框架的方法
log4net 是一个高效、灵活且广泛使用的日志记录库,专门用于 .NET 框架。它是 Apache 的一个开源项目Apache log4j框架在Microsoft .NET平台的实现。log4net 旨在提供一个简单、易用但功能强大的日志系统。本文主要介绍.NET 7 中配置使用log4net,以及相关示例代码。原创 2023-12-25 22:14:09 · 3020 阅读 · 2 评论 -
(C#)使用sharpcompress压缩解压文件(.rar,.zip,tar.bz2,.7z,.tar.gz)
使用Nuget搜索sharpcompress,点击安装即可。1).zip文件压缩代码。2).zip文件解压代码。原创 2023-12-07 22:04:27 · 1541 阅读 · 0 评论 -
C#调用cmd.exe(dos命令)两种方法(Process,Cli)
4)通过控制台应用程序中传递参数获取输出结果。2)运行cmd命令隐藏控制台窗口。1)C#运行shell命令。3)运行cmd命令参数配置。通过Nuget安装Cli。原创 2023-12-06 14:32:15 · 1383 阅读 · 0 评论 -
Json.NET 单个对象Json字符串反序列成两个不同实体对象
本文主要介绍Newtonsoft.JSON(Json.NET)中,将一个对象的Json字符串反序化成两个不同的实体对象的方法代码。原创 2023-12-04 23:51:12 · 413 阅读 · 0 评论 -
C#.Net EF(Entity Framework 6) SQLite配置使用(codefirst)
本文主要介绍在.Net(C#)中,使用Entity Framework 操作Sqlite数据库,并且通过codefirst实现自动创建SQLite数据库和表,以及一些常用操作和配置。项目名上右键 =》点击"管理Nuget程序包" =》搜索",自动生成修改的配置文件,有时会有问题,我之前就被坑了。1)新建ORMContext类继承DbContext。如果出现奇怪的问题,仔细检查一下配置文件中。2)Web网站用到的配置文件。" 这3个包进行安装。1)控制台程序配置文件。3)使用操作示例代码。原创 2023-12-03 20:44:54 · 1727 阅读 · 0 评论 -
C#后台发送Get和Post请求的几种方法总结
适用平台:.NET Framework 4.5+, .NET Standard 1.1+, .NET Core 1.0+适用平台:.NET Framework 1.1+, .NET Standard 2.0+, .NET Core 1.0+适用平台:.NET Framework 1.1+, .NET Standard 2.0+, .NET Core 2.0+命名空间:using System.Net.Http;1)Flurl.Http(可以通过Nuget来安装)命名空间:using Flurl.Http;原创 2023-12-02 22:16:51 · 1040 阅读 · 0 评论 -
C#8.0中新语法“is {}“的介绍及使用
操作符检查表达式的结果是否与给定类型兼容,或者(从c# 7.0开始)根据模式测试表达式。以下示例将类型和常量模式组合在一起,以测试对象是否为Dice实例,如果是,则确定掷骰的值是否为6。使用常量模式执行模式匹配时,is测试表达式是否等于指定的常量。:它测试表达式是否可以转换为指定的类型,如果可以,则将其强制转换为该类型的变量。测试表达式是否可以转换为指定的类型,如果可以,将其强制转换为该类型的变量。语句的直接扩展,可以实现简洁的类型评估和转换。:匹配成功并且将表达式的值绑定到新的局部变量的匹配。原创 2023-11-23 09:08:02 · 892 阅读 · 0 评论 -
C#中反射的使用总结
反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。可以直接通过反射方式创建对象,即使这个对象的类型在编译时没有加载。本文主要介绍.NET(C#)中反射使用总结,及相关操作的示例代码。原创 2023-11-22 08:55:32 · 302 阅读 · 0 评论 -
C#中委托和事件的使用总结
委托(delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用。类或对象可以通过事件向其他类或对象通知发生的相关事情。本文主要介绍C#中委托和事件的使用总结。原创 2023-11-18 22:19:37 · 822 阅读 · 0 评论 -
C#中Linq AsEnumeralbe、DefaultEmpty和Empty的使用
Linq是Language Integrated Query的简称,它是微软在.NET Framework 3.5里面新加入的特性,用以简化查询查询操作。以下主要介绍C#中Linq的AsEnumeralbe、DefaultEmpty和Empty操作符。原创 2023-11-13 21:24:33 · 522 阅读 · 0 评论 -
C#中匿名类的声明及使用
C#中声明方法或类时,可以不指定的类或方法的名字,也就是匿名类和匿名的方法。以下主要介绍C#中匿名类的声明及使用。原创 2023-11-12 21:29:54 · 916 阅读 · 0 评论 -
C#中的扩展方法---Extension
C#中扩展方法是C# 3.0/.NET 3.x 新增特性,能够实现向现有类型中“添加”方法,以下主要介绍C#中扩展方法的声明及使用。原创 2023-11-11 23:56:52 · 1173 阅读 · 0 评论 -
C# 9.0 record和with的定义及使用
record类型的实际是一个引用类型 ,但具备值类型的行为。重写了Equals等对象类型的比较方法,在两个不同引用的record对象的内容相同时,对两者进行==比较,判断两者相等为true。重写了ToString()方法,便于输出属性内容。还重写了和Equals()方法。1)定义record类型创建使用:用对象初始化器进行初始化,则在属性中使用init关键字,如下,init;init;注意:由于有set。原创 2023-11-07 17:28:24 · 846 阅读 · 0 评论 -
.NET Framework中自带的泛型委托Action
Action是.NET Framework中自带的泛型委托,可以接收一个或多个输入参数,但不返回任何参数,可传递至多16种不同类型的参数类型。在Linq的一些方法上使用的比较多。原创 2023-11-06 23:00:11 · 752 阅读 · 0 评论 -
.NET Framework中自带的泛型委托Func
Func是.NET Framework中自带的泛型委托,可以接收一个或多个输入参数,并且有返回值,和Action类似,.NET基类库也提供了多达16个输入参数的Func委托,输出参数只有1个。原创 2023-11-05 22:22:48 · 868 阅读 · 0 评论 -
了解.NET Framework中自带的泛型委托Predicate和Comparison
Predicate表示定义一组条件并确定指定对象是否符合这些条件的方法。Comparison表示比较同一类型的两个对象的方法。本文主要介绍.NET Framework中自带的泛型委托Predicate和Comparison的使用。原创 2023-11-04 21:25:12 · 511 阅读 · 0 评论 -
C#中GUID的五种格式化输出
在 C# 中,可以通过。GUID 能够生成高度唯一的标识符,因为它们不依赖于任何特定的硬件或软件环境,并且在生成过程中考虑了时间戳、网络地址等信息,确保了极高的唯一性。除了 "D" 这种格式化选项外,还有其他几种格式化选项可供选择,例如 "N"、"B"、"P" 和 "X"。X 选项:以连续的 32 个数字(没有分隔符),并使用大括号括起来,每组四个数字,并在第三组和第四组之间插入一个下划线。P 选项:将 GUID 格式化为括在小括号中、由连字符分隔的 32 个数字,与 B 选项类似。原创 2023-11-01 19:24:43 · 620 阅读 · 0 评论 -
了解C#中Lambda表达式的用法
Lambda表达式是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。原创 2023-10-30 09:02:28 · 302 阅读 · 0 评论 -
理解C#中对象的浅拷贝和深拷贝
本文章主要介绍C#中对象的拷贝,其中包括浅拷贝和深拷贝,以及浅拷贝和深拷贝的实现方式,不同的实现方式之间的性能对比。原创 2023-10-29 00:29:53 · 1043 阅读 · 1 评论 -
C#中通过BeginInvoke()和EndInvoke()来实现异步
NET Framework允许异步调用任何方法。定义与需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。以下介绍C#中,通过BeginInvoke()和EndInvoke()来实现异步。原创 2023-10-27 16:46:17 · 633 阅读 · 0 评论 -
C#中ThreadPool线程池的使用总结
使用线程池,可以通过向应用程序提供由系统管理的工作线程池,来更有效地使用线程。托管线程池中的线程是后台线程。其 IsBackground 属性为 true。线程池可以减少资源损耗。重用线程、控制线程数量,减少线程创建和切换所带来的开销。提高响应速度。可直接使用线程池中空闲的线程,而不必等待线程的创建。方便管理线程。以下主要介绍C#中 ThreadPool线程池的使用。原创 2023-10-23 00:03:25 · 1216 阅读 · 0 评论 -
C#中ManualResetEvent 和 ManualResetEventSlim的使用
从 .NET Framework 版本2.0 开始, ManualResetEvent 派生自 EventWaitHandle 类。在 ManualResetEvent 功能上等效于EventWaitHandle 使用创建的EventResetMode.ManualReset。ManualResetEventSlim用于实现更好的性能 ManualResetEvent。以下介绍.NET(C#)中ManualResetEvent 和 ManualResetEventSlim的使用总结。原创 2023-10-20 15:37:58 · 996 阅读 · 0 评论