- 博客(137)
- 资源 (3)
- 收藏
- 关注
原创 在c#中虚方法和抽象类的区别
在C#中,虚方法(virtual method)和抽象方法(abstract method)是面向对象编程中两种重要的机制,用于实现多态性。虽然它们都有助于实现类之间的灵活关系,但它们在定义、使用以及功能上有一些关键的区别。
2025-02-16 13:59:35
753
原创 在c#中如何利用设计模式优雅地消除业务代码中大量的if/else和重复逻辑
在C#编程中,大量的if/else语句和重复逻辑不仅使代码难以维护,还增加了出错的风险。为了优雅地消除这些问题,你可以利用设计模式来重构代码。
2025-02-16 13:36:09
421
原创 系统架构的演变
系统架构是系统的一种整体的高层次的结构表示,它确定了系统的基本组织、组件之间的关系、组件与环境的关系,以及指导其设计和发展的原则。随着技术的发展和业务需求的增长,系统架构经历了从简单到复杂、从集中到分布的演变过程。
2024-12-14 12:34:49
1157
原创 828华为云征文|Flexus X实例GitLab部署&构建流水线-私人一体化代码仓库~
本实践指南将引领您深入体验GitLab CI/CD与GitLab Runner的完美融合,以构建一套高效、自动化的.NET控制台应用程序部署流程。您将学习到如何通过GitLab CI/CD功能配置Runner来监听GitLab的Webhooks,从而实现在代码提交后自动触发构建和部署流程;如何利用Docker容器技术来快速打包和运行您的.NET控制台应用;以及如何通过编写.gitlab-ci.yml脚本来管理整个自动化部署流程。
2024-09-21 21:34:54
1598
原创 828华为云征文|Flexus X实例Docker+Jenkins+gitee实现CI/CD自动化部署-解放你的双手~
本实践指南将带您深入探索Docker+Jenkins+Gitee的完美结合,一步步构建起一套高效、可靠的CICD自动化部署体系。您将学会如何配置Jenkins以监听Gitee的Webhooks,实现代码提交的即时响应;如何利用Docker容器快速打包并运行您的C# Web API应用。
2024-09-17 01:17:09
2156
原创 828华为云征文|Flexus X实例C#/.Net Core 结合(git代码管理、docker自定义镜像)快速发布部署-让你的项目飞起来~
本实验深入演示了如何在Ubuntu环境中,利用Git进行版本控制管理代码,并通过Docker技术自定义构建镜像,从而实现项目从代码到应用的快速构建、打包与部署流程。这一流程不仅提升了开发效率,还确保了环境的一致性与可重复性。
2024-09-08 17:00:07
2303
1
原创 828华为云征文|Flexus X实例ultralytics模型yolov10深度学习AI部署与应用
从0到1部署YOLOv10深度学习AI大模型的环境搭建、模型训练、权重使用,以及各项指标解读。
2024-09-01 14:26:04
1401
原创 c# .net core项目角色授权机制
角色授权机制是确保应用程序安全性的重要组成部分,它允许开发者根据用户的角色来限制对应用程序中不同资源的访问。
2024-08-03 17:00:03
1503
原创 c# .net core项目中使用JWT进行权限校验
JWT(JSON Web Token)是一种开放标准(RFC 7519),它提供了一种在网络应用间安全传输信息的简洁、自包含的方式。JWT主要用于身份验证和授权机制,是一种轻量级的、可扩展的、自包含的身份验证和授权解决方案。
2024-08-03 16:27:26
1495
原创 c# .Net Core 项目配置SWagger UI 带Token访问
Swagger是一款强大的API管理工具,它主要用于生成、描述、调用和可视化RESTful风格的Web服务。Swagger通过一套标准的规范定义接口及其相关信息,从而能够自动生成各种格式的接口文档(如HTML、PDF、Markdown等),并支持生成多种语言和客户端、服务端的代码,以及提供在线接口调试页面,极大地方便了开发人员进行接口的开发和测试。
2024-08-01 21:40:40
1766
原创 Autofac通过反射程序集方式 注册 接口 与 实现 之间的关系
使用反射自动扫描并注册程序集中的所有类型,可以极大地减少手动编写注册代码的需要。这意呀着对于每个新的接口实现,你不需要更新一个集中的注册点,从而减少了出错的机会
2024-08-01 21:40:11
1140
1
原创 Asp.Net Core 读取配置接口 IOptions、IOptionsMonitor以及IOptionsSnapshot
Options是.net Core Web api框架自带的功能,Options模式通过定义强类型的类来表示相关配置设置的集合,使得配置管理更为结构化和类型安全。
2024-06-15 15:21:22
1658
原创 微信小程序开发-网络请求
HTTP请求是客户端向服务器发送的请求消息,用于获取或操作服务器上的资源。微信小程序提供了一个名为wx.request的API函数,用于发起HTTPS网络请求。
2024-05-18 14:10:13
2498
原创 微信小程序开发基础-基本组件
微信小程序不仅为用户提供了便捷高效的服务体验,也为开发者带来了新的机遇和挑战。通过学习和掌握小程序的开发流程及技术要点,开发者可以创造出符合用户需求的小程序,进而在庞大的微信用户群体中实现自己的业务目标。
2024-05-05 14:53:19
1067
原创 ASP.NET Core 模型绑定
在C#中,特别是在ASP.NET Core中,模型绑定是一个将HTTP请求中的数据映射到C#对象的过程。它使得开发者能够方便地从请求中提取数据,而无需手动解析请求体、查询字符串、路由数据等。ASP.NET Core提供了多种特性(Attributes)来指定模型绑定的来源。
2024-04-07 00:12:31
1199
原创 ASP .Net Core 配置集合 IConfiguration 的使用
IConfiguration的主要功能是作为配置的最终产出物,提供对应用程序配置信息的访问。它允许你从多种配置源(如文件、环境变量、命令行参数等)中读取配置内容,并将这些数据格式化为Key-Value结构,使得开发者能够方便地获取和使用这些配置信息。
2024-03-20 23:34:29
2265
原创 ASP .Net Core ILogger日志服务
ILogger日志服务是.NET平台中的一个内置服务,主要用于应用程序的日志记录。它提供了灵活的日志记录机制,允许开发者在应用程序中轻松地添加日志功能。
2024-03-19 22:52:01
2264
原创 ASP .Net Core 8.0 依赖注入的三种注入模式
🍀在.NET中,依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件之间的依赖关系。依赖注入的核心思想是将对象的依赖关系(即对象所需的其他服务或组件)从对象内部创建转移到外部容器来管理。这样,对象不需要知道其依赖的具体实现细节,只需要通过构造函数、属性或方法等注入所需依赖即可。这种模式提高了代码的模块化和可测试性,同时也使得替换和扩展依赖变得更加容易。
2024-03-18 23:11:30
2988
原创 C#使用QQ邮箱发送邮件
使用官方提供的命名空间System.Net.Mail 进行QQ邮箱发送邮件,这个命名空间包含了一系列类,用于创建、配置和发送电子邮件消息
2024-02-26 22:36:27
2000
7
原创 python爬虫爬取图片 必应&百度(仅供学习)
使用python在百度和必应分别爬取图片,并通过在headers中模拟浏览器的用户代理(User-Agent),可以让请求看起来像是来自真实的浏览器,从而避免被网站的反爬机制拦截
2024-02-16 13:23:03
1543
2
原创 “SharpDocx” C#项目中用于创建 Word 文档的轻量级模板引擎
(一个可以在word文档写代码,并且能运行的工具)SharpDocx是一个轻量级的模板引擎,用于创建Word文档。它允许开发者基于视图生成Word文档,这个视图本身就是一个Word文档,可以根据需要设置简单或复杂的布局。
2024-02-05 22:32:29
1546
原创 C#使用RabbitMQ-5_主题模式(主题交换机)
在主题模式中,生产者发送的消息被发送到一个交换机(Exchange),该交换机根据消息的路由键(Routing Key)和绑定(Binding)规则将消息路由到一个或多个队列。消费者随后从队列中接收并消费这些消息。
2024-02-05 22:30:08
1240
原创 C#使用RabbitMQ-4_路由模式(直连交换机)
RabbitMQ中的路由模式是一种根据Routing Key有条件地将消息筛选后发送给消费者的模式。在路由模式中,生产者向交换机发送消息时,会指定一个Routing Key。交换机接收生产者的消息后,根据消息的Routing Key将其路由到与Routing Key完全匹配的队列。消费者只从其绑定的队列中接收消息,因此只接收筛选后的消息。
2024-01-31 22:01:29
1184
原创 C#使用RabbitMQ-3_发布订阅模式(扇形交换机)
在RabbitMQ的发布订阅模式中,生产者发送的消息不是直接发送到特定的队列,而是发送给Exchange。Exchange根据配置的规则决定如何处理这些消息。例如,它可以将消息路由到一个特定的队列,也可以将消息路由到多个队列,或者在某些情况下废弃消息。
2024-01-31 21:32:10
1532
1
原创 C#使用RabbitMQ-2_详解工作队列模式
RabbitMQ中的工作队列模式是指将任务分配给多个消费者并行处理。在工作队列模式中,生产者将任务发送到RabbitMQ交换器,然后交换器将任务路由到一个或多个队列。消费者从队列中获取任务并进行处理。处理完成后,消费者可以向RabbitMQ发送一个确认消息,表示任务已完成。
2024-01-26 10:09:57
773
4
原创 C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理
在docker中部署RabbitMQ,开启可视化管理界面,通过c#代码分别使用自动模式和手动模式进行消息队列的简单模式进行演示
2024-01-26 10:09:08
1133
原创 如何使用Entity Framework查询Mysql数据库 并实现多表联查
通过依赖注入的方式,使用ORM工具Entity Framework查询Mysql数据库中的数据,并实现多表联查
2024-01-16 22:23:23
1513
3
原创 AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面
aspnetcore.knife4j是一个基于.NET Core平台的Swagger UI库,它提供了API文档的生成和管理功能。这个库的前身是swagger-bootstrap-ui,在Java项目中广泛使用,由于其优秀的界面和易用性被许多开发者所推崇。现在,aspnetcore.knife4j已经被集成到了.NET Core 3.0+和.NET Standard 2.0中。通过使用aspnetcore.knife4j,开发者可以为自己的应用生成API文档,从而可以更方便地基于API文档进行测试。
2023-12-09 23:38:36
2015
2
原创 HarmonyOS4.0 ArkUI组件
HarmonyOS 4.0 ArkUI基础组件:Text(文本)、Image(图片)、TextInput(文本输入)、Button(按钮)、LoadingProgress(加载进度)
2023-11-30 23:35:53
1087
原创 ASP.NET Core 使用 SignalR 实现实时通讯
SignalR是一个用于ASP.NET的库,它允许服务器代码向连接的客户端实时发送推送通知。它使用WebSockets作为底层传输机制,但如果浏览器不支持WebSockets,它会自动回退到其他兼容的技术,如服务器发送事件(Server-Sent Events)或长轮询。SignalR的主要特点是它支持双向通信,这意味着服务器可以主动向客户端发送消息,而客户端也可以发送消息给服务器。这与传统的HTTP请求不同,后者通常是单向的,即客户端向服务器发送请求,然后等待响应。
2023-11-25 14:43:25
2133
原创 还在担心发抖音没素材跟文案?[腾讯云HAI] AIGC带你蹭热度“今年你失去了什么?”
随着人工智能技术的不断进步,AIGC(AI生成内容)已经成为了各行各业的新宠。从艺术创作到软件开发,AIGC的应用范围越来越广泛,它不仅能够提高工作效率,还能够激发创新灵感。然而,要想充分利用AIGC的强大功能,我们需要有强大的算力支持。这对于许多中小企业和个人开发者来说,是一个不小的挑战。幸运的是,腾讯云推出的“高性能应用服务HAI”为我们提供了一个完美的解决方案。它不仅提供了强大的GPU云服务器算力,还提供了易于使用的服务,让我们可以快速部署和使用大型模型。
2023-11-21 23:08:38
1099
原创 在c#中如何将多个点位(Point)转换为多边形(Polygon)并装换为shp图层
在c#中如何将多个点位(Point)转换为多边形(Polygon)并装换为shp图层。NetTopologySuite是一个.NET库,它提供了一系列的类和方法来处理地理空间数据。这个库主要用于处理和操作地理空间数据,包括点、线、多边形等几何图形的创建、查询、分析和转换等操作。它实现了开放地理空间联盟(OGC)的简单特性访问规范,并提供了对地理空间数据库的支持。
2023-11-18 09:26:39
867
原创 C# “依赖注入” 中的 “三种生命周期”
依赖注入(Dependency Injection,简称DI)是一种实现控制反转(IoC)的技术,用于减少代码之间的耦合度。通过依赖注入,一个类可以从外部获取其依赖的对象,而不是自己创建。这样可以使得代码更加模块化,更易于测试和维护。
2023-10-29 23:38:09
2376
原创 c#中使用Task.WhenAll
用于等待所有提供的Task对象完成执行。这个方法返回一个新的Task,这个Task将在所有提供的Task完成后完成。如果任何一个Task失败,返回的Task也将以异常状态完成。这个方法非常适合在你需要并行执行多个操作,并且需要等待所有操作完成后才能继续执行的情况。例如,你可能需要从多个源并行下载数据,然后在所有下载完成后处理这些数据。使用可以使你的代码更简洁,更易于理解和维护。你不需要手动跟踪每个Task的状态,也不需要编写复杂的代码来处理并行操作的结果。
2023-10-21 22:06:23
2258
400多张 “皮卡丘” 原图 与 标注结果 以及yolov8的训练结果best.pt权重和ONNX格式文件
2024-02-20
AI动物识别图像分类数据集
2024-01-02
计算机系论文,人工智能方向,5000字,YOLOv5
2023-02-25
程序员简历单页、多页、封面177款,及简历写作面试技巧
2023-02-25
Springboot & MySQL & Mybatis 学生管理系统
2022-07-07
Spring如何实现IoC( IDEA项目maven工程)
2022-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人