自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (6)
  • 收藏
  • 关注

原创 Include多表查询

是 EF 和 EF Core 中用于预先加载关联数据的重要方法,能够有效优化查询性能,避免 N+1 查询问题。它的主要作用是在查询数据库时,将关联的实体数据一并加载到内存中,避免后续使用时触发额外的数据库查询(即延迟加载,Lazy Loading)。可以在查询主实体的同时,自动加载与之相关联的其他实体。指的是每次加载主实体时,都会对每个主实体执行额外的查询,造成性能瓶颈。,查询主实体后,访问每个实体的导航属性时会触发额外的数据库查询。是 EF 和 EF Core 提供的一个方法,用于在查询主实体时,

2025-02-10 22:37:50 1201

原创 Moq框架的用法

Moq 是 .NET 中常用的 Mocking 框架,用于创建依赖的模拟对象,帮助开发者在单元测试中隔离和测试目标代码的行为。它允许对接口、抽象类和虚拟方法进行模拟。

2024-12-17 23:43:37 523

原创 C#对FTP服务器操作类

TreeView控件显示目录结构,ListView显示文件列表。通过类实现与 FTP 服务器的交互,如列出文件、上传和下载。通过右键菜单和双击事件,支持用户下载和上传文件,提供类似访问本地文件系统的体验。这样,用户可以通过 WinForms 的图形界面与 FTP 服务器交互,类似于本地文件系统的操作体验。

2024-10-16 22:48:44 622

原创 MongoDB服务启动失败 错误代码48

检查你的启动脚本或者服务管理工具,确保没有重复启动 MongoDB 的行为。如果你不想终止进程或者端口确实被另一个应用占用了,你可以更改 MongoDB 的监听端口。或者 Windows 上的 MongoDB 数据目录中,寻找更多有关启动失败的详细信息。通过以上步骤,你应该能够解决 MongoDB 错误代码 48 引起的启动失败问题。很遗憾的是,然而我发现我的我的端口并没有被占用,并且我换了一个端口之后依然不行;如果上述步骤无法解决问题,检查 MongoDB 的日志文件,通常位于。配置部分并修改端口号。

2024-10-07 14:31:28 699

原创 Session鉴权

接下来,使用自定义中间件来从每个请求的 Cookie 中提取。

2024-09-29 23:22:33 754

原创 授权断言实现

授权断言的核心是实现接口,定义需要满足的条件。上面的例子中,表示一个要求,即用户的年龄必须超过指定的最小年龄。现在,你需要在Startup.cs或Program.cs中注册自定义的授权策略以及处理程序。// 添加授权服务,并定义自定义的策略});// 注册处理程序// 添加授权服务,并定义自定义的策略 services . AddAuthorization(options => {});

2024-09-29 23:21:41 812

原创 DotNet鉴权的实现

要实现一个自定义的身份验证方案,通常需要创建一个类,继承接口并实现它的所有方法。下面是一个基于自定义 Token 的身份验证方案的简单示例。// 从请求头中提取 Token// 验证 Token(此处为简单示例,可集成 JWT 验证等)else为了让 ASP.NET Core 使用自定义的身份验证处理程序,您需要将它注册到服务中。首先,创建一个继承自的处理程序,然后在Startup.cs或Program.cs中将它注册。.AddScheme// 添加授权服务 }

2024-09-29 23:20:34 820

原创 RabbitMQ 添加用户错误

确保匹配: 复制 RabbitMQ 服务使用的 .erlang.cookie 文件内容,并将其粘贴到你的用户目录下的 .erlang.cookie 文件中(即 C:\Users<your-username>.erlang.cookie)。RabbitMQ 服务的 cookie 文件通常位于 C:\Windows\System32\config\systemprofile.erlang.cookie(如果 RabbitMQ 以系统用户身份运行)。今天,在尝试在RabbitMQ里面添加用户的时候发生了错误。

2024-09-24 19:01:03 512

原创 过滤器与控制器之间的数据传递

在 ASP.NET Core 中,过滤器与控制器之间的数据传递可以通过多种方式实现,依赖于具体的需求和上下文。

2024-09-23 21:37:57 241

原创 DotNet6中的过滤器

在 .NET 中配置过滤器(Filter)涉及在 ASP.NET Core MVC 或 Web API 应用程序中使用过滤器来处理 HTTP 请求的前置和后置条件。过滤器可以在控制器执行前后以及操作执行前后执行。常见的过滤器类型包括认证过滤器、授权过滤器、资源过滤器、操作过滤器和异常过滤器。

2024-09-23 21:36:52 971

原创 WebApi的LaunchSettings文件

在.NETwebApi当中有一个配置文件夹LaunchSettings.json;主要用于定义如何启动和调试应用程序。

2024-09-23 21:35:52 273

原创 os.walk函数学习(检索指定路径下后缀是 某种类型 的所有文件)

它允许你逐层遍历文件夹和子文件夹,访问它们的内容,以便执行各种文件和文件夹操作。这种遍历方式特别适合处理文件系统中的文件和目录结构,例如备份、查找文件、文件索引等任务。返回一个生成器(generator),用于遍历指定路径下的所有文件夹、子文件夹和文件。生成器产生的每个元素都是一个包含三个值的元组,格式为。实例:检索指定路径下后缀是 某种类型 的所有文件。其会先便利自己目录下所有的文件和文件夹,输出。生成的元组,以访问所有文件夹和文件。然后便利.idea所有的文件和文件夹。函数解释:在Python中,

2023-11-05 11:25:57 784

原创 CancellationTokenSource的使用

在执行可能需要取消的操作时,通常会在操作的主要执行代码中多次检查取消标记,以查看是否已请求取消。这个标记可以传递给需要检查取消请求的方法,以便它们可以在取消请求时停止执行。可用于多线程应用程序和异步操作中,使您能够安全地取消执行中的操作,以提高应用程序的健壮性和可靠性。在这个示例中,我们将创建一个可以取消的计数器任务,以便在需要时停止计数。和取消标记来控制异步任务的取消。它允许您创建一个可用于请求取消操作的取消标记,以便您的应用程序能够响应取消请求。然后,我们等待任务完成,如果任务已取消,将捕获。

2023-10-09 20:13:20 1036

原创 控件的refresh,invalidate和update函数的区别

都涉及控件的重绘,但在使用时需要根据不同的需求和场景来选择。需要注意的是,这些方法在不同的 GUI 框架和编程语言中的具体行为可能会有细微的差异。是常见的控件刷新(重绘)操作。在图形用户界面(GUI)编程中,

2023-08-15 22:22:34 803

原创 c#读取XML文档

类来读取 XML 文档。在 C# 中,可以使用。

2023-08-04 14:14:00 1780 1

原创 c#导出数据

第二种方法:使用了 NPOI 库创建了一个 HSSFWorkbook 对象表示一个 Excel 工作簿,然后在工作簿中创建了一个表格并将 DataGridView 中的数据写入表格中。第一种方法:使用 Microsoft Excel 的 COM 互操作来将 DataGridView 中的数据导出到 Excel 文件中。将 DataGridView 中的数据写入到一个 Excel 文件中,其中使用了。这种操作也就是一个单元格一个单元格的操作,故执行效率非常的低。,再将该字符串写入到一个文本文件中。

2023-08-01 16:57:55 847 1

原创 两种方法将datagridview中的数据转换为DataTable

两种方法比较,在我转换十万条数据的时候,两种方法的的速度基本上没什么区别,而且性能都不太行。2.先转换为DataRow 数组 再一行一行填充。

2023-08-01 11:34:08 3879 1

原创 Form页面传值

将FrmShelfList设置为FrmShelfInfo 的拥有者//(4) 所有者传值 当前页定义公开变量,当前面设置为目标页的所有者 fShelf = new FrmShelfInfo();//设置当前页为信息页的所有者在FrmShelfInfo 页面接收信息//所有者取值---不推荐使用 FrmShelfList frmList = this . Owner as FrmShelfList;//获取所有者 if(frmList!= null) {

2023-07-16 20:16:44 188 1

原创 c#特性Attribute

应用语法:[特性名(参数1, 参数2 = 值, …)]应用元素AttributeUsage 如何使用一个自定义特性类。它规定了特性可应用到的项目的类型。Conditional 标记了一个条件方法,其执行依赖于指定的预处理标识符。Obsolete 标记了不应被使用的程序实体。它可以让您通知编译器丢弃某个特定的目标元素。Net 框架允许创建自定义特性,用于存储声明性的信息,且可在运行时被检索。该信息根据设计标准和应用程序需要,可与任何目标元素相关。

2023-04-30 13:33:55 145

原创 c#利用事件完成页面之间的交互

1.创建窗体FrmEvent和FrmEventExpend,将FrmEventExpend添加的信息显示到FrmEvent窗体中。3.声明事件,ExpendArgs用来表示需要传递的消息,必须继承EventArgs。5.当点击FrmEventExpend的支出记账的时候,需要事件响应。2.创建 ExpendNew类存储信息。

2023-04-29 16:16:48 225

原创 通过程序集来创建对象实例并且完成属性的赋值

1.假设在Models的命名空间下面存在三个类BaseModel,ExpendModel和IncomeModel。BaseModel为其他两个类的基类。3.获取指定的Type对象,并且创建对象实例。2.有三种方式可以加载程序集。5.调用其中的方法,注意传参。

2023-04-27 16:42:41 140

原创 c#反射操作步骤

1.首先定义一个用来进行实验的类ItemInfo,处于WinAdvancedCourse.classFiles的命名空间下面。2.利用反射技术获取ItemInfo的一个实例,首先根据所在的命名空间,获取对应的type对象。4.获取类里面的公有属性,返回的是 PropertyInfo[]的数组。5.通过属性名也可以获取到相应的属性,为PropertyInfo。7.获取公有的字段,返回 FieldInfo[]对象。6.如果想要对属性进行读或者写的操作。8.获取指定的方法,并且执行。

2023-04-26 17:08:10 237

原创 c# filestream 类常用的函数 FileMode 常用的属性

Create`: 如果文件不存在,则创建一个新文件;如果文件存在,则覆盖原文件。: 如果文件存在,将数据追加到文件的末尾;否则,创建一个新文件。否则,创建一个新文件。类进行写操作时,写入的数据通常会先存储在缓冲区中,调用。: 如果文件存在,则打开该文件;否则,创建一个新文件。参数是一个枚举类型,表示指针移动的参考位置,如。表示打开现有文件并将指针定位到文件末尾等等。: 向文件中写入指定长度的字节数据。类,提供了一些额外的文件操作方法。类是C#中用于读写文件的类,它继承自。: 将缓冲区中的数据写入文件。

2023-04-15 10:56:02 1024

原创 ThreadPool.QueueUserWorkItem方法 和WaitCallback委托

当线程池中有可用的线程时,线程池会从队列中取出一个工作项并使用一个线程来执行它。当你需要执行一个方法但不想创建一个新的线程时,可以使用该方法。这个方法会将工作项放到一个线程池队列中,并由线程池中的一个线程来执行该工作项。方法的第一个参数是 WaitCallback 委托类型,它表示要在线程池上执行的方法。这个参数可以是任何类型的对象,但需要注意的是,如果需要传递多个参数,则应该将它们封装在一个对象中。是一个委托类型,在 C# 中用于指定要在线程池中执行的方法。方法来调用一个方法,该方法使用。

2023-04-14 15:00:08 1987

原创 c#常用对字符串操作的函数

在字符串中查找指定的字符串,并返回其第一次出现的位置。上述是 C# 中一些常用的字符串函数,还有很多其他的字符串函数可以使用。:根据指定的分隔符将字符串拆分为多个子字符串。:从指定的位置开始,提取指定长度的子字符串。:比较两个字符串的大小关系,返回一个整数值。:将字符串分别转换为大写或小写字母。:将多个字符串按指定分隔符连接起来。:判断字符串是否包含指定的子字符串。:将字符串中所有的旧值替换为新值。:删除字符串开头和结尾的空格。:将多个对象格式化为字符串。:返回字符串中字符的数量。

2023-04-09 23:04:10 772

原创 Console.Readkey() Console.Readline() Console.Read();的区别

1.Console.ReadKey(): 从控制台读取一个单一的字符,不需要等待用户按下回车键,而且输入的字符不会显示在控制台上,只有按下特殊键(如方向键、功能键、控制键)时,输入的字符才会显示出来。2.Console.ReadLine(): 从控制台读取用户输入的一行文本,等待用户按下回车键,然后返回用户输入的文本,包括回车符和换行符。总之,Console.ReadKey() 用于读取单个按键,Console.ReadLine() 用于读取整行文本,Console.Read() 用于读取单个字符。

2023-04-09 10:24:54 1734

原创 常用的数据库引擎

特点InnoDBMyISAMMemory存储限制64TB有有事务安全支持--锁机制行锁表锁表锁B+tree索引支持支持支持Hash索引--支持全文索引支持(5.6版本之后)支持-空间使用高低N/A内存使用高低中等批量插入速度低高高支持外键支持--

2023-04-08 15:33:58 84

原创 什么是行锁?什么是表锁?

表锁是指在事务执行期间,对整张数据表加锁,其他事务无法对该表中的任何行进行修改或查询,这种锁机制可以保证同时访问表中任意数据的并发事务之间不会互相干扰,但会导致并发性降低。行锁是指在事务执行期间,仅对数据表中的某一行(或某几行)加锁,其他行不受影响,这样可以保证同时访问表中不同行数据的并发事务不会互相干扰。需要注意的是,行锁和表锁的使用都需要谨慎考虑,并根据实际应用场景选择合适的锁机制。行锁和表锁都是数据库中常见的锁机制,用于控制并发访问和修改数据库中的数据。

2023-04-08 15:21:34 2077

原创 HTTP协议中常见的状态码含义

HTTP协议中常见的状态码如下:下面是一些常见的HTTP状态码:

2023-04-06 22:32:33 72

原创 C#中的反射机制

是一种让程序在运行时动态地获取对象的类型信息并访问其成员(属性、方法、字段等)的机制。反射机制可以在运行时分析和调用程序集、模块、类型和成员。

2023-04-02 16:03:12 163

原创 Assembly获取程序集的几种方法

除了上述方法,还有一些其他的方法可以获取程序集,如Assembly.GetAssembly方法可以根据类型获取程序集,Assembly.ReflectionOnlyLoad方法可以以只反射的方式加载程序集等。Assembly.GetExecutingAssembly方法:获取当前执行代码的程序集。Assembly.LoadFile方法:从指定路径加载程序集,但不会加载程序集的依赖项。Assembly.LoadFrom方法:从指定路径加载程序集。Assembly.Load方法:根据程序集名称加载程序集。

2023-04-02 15:12:03 1281

原创 C++模板的一些问题

/类模板的定义 template < class NameType , class AgeType > class Person {public :test03();return 0;

2023-02-20 10:31:09 96

原创 c++笔记

c++一些知识点

2023-02-17 14:21:43 67

原创 c++符号重载的问题

区别:前置递增要保持返回值还是当前调用的对象,所以返回的是引用,但是后置递增是返回值类型,因为其返回的是临时的对象,故不能返回引用。而且还是就是后置递增采用的是一个(int)占名来和前置递增产生区别。这里可以看到结果,并且重新在堆区开辟了空间。总结:前置递增返回引用,后置递增返回值。

2023-02-17 10:21:17 99

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除