net
-
C#怎么使用Immutable集合 C#不可变集合库使用指南
C#中使用Immutable集合需引用System.Collections.Immutable命名空间,通过静态工厂方法创建实例,所有修改操作返回新实例;支持Builder模式批量高效变更。 在C#中使用Immutable集合,核心是引用System.Collections.Immutable命名空…
-
C# IDisposable接口与using语句 – 托管资源与非托管资源的正确释放
IDisposable用于及时释放非托管资源,避免文件句柄、数据库连接等泄漏,GC不管理这些资源;通过using语句或Dispose模式确保显式清理,防止资源占用;终结器不可靠,需主动调用Dispose;托管内存由GC回收,无需手动置null;正确实现包括释放非托管资源、调用GC.SuppressF…
-
C#怎么使用Microsoft.Extensions.Logging .NET通用日志框架用法
.NET中推荐使用Microsoft.Extensions.Logging实现轻量可扩展的日志功能,支持Console、Debug等提供程序,通过依赖注入ILogger并配置级别与过滤规则实现结构化日志。 在.NET中使用 Microsoft.Extensions.Logging 是标准且推荐的日志…
-
Blazor 渐进式 Web 应用 (PWA) 配置教程
Blazor项目启用PWA需配对核心文件、注册service worker并配置缓存策略:新建时勾选PWA选项,或手动添加manifest.json/service-worker.js;确保service-worker.js位于根路径且作用域正确;通过Workbox定制缓存资源与API请求策略;最后…
-
ASP.NET Core怎么创建API ASP.NET Core Web API入门方法
ASP.NET Core 创建 Web API 推荐新手从 Minimal API 入手,用 dotnet new web -n MyApi 创建轻量项目,几行代码即可定义路由与处理逻辑;中大型项目则宜采用 Controller 模式,通过特性标注实现规范分层与功能扩展。 ASP.NET Core …
-
.NET 8 Blazor 怎么在表单中使用 [SupplyParameterFromForm]
.NET 8 中不存在 [SupplyParameterFromForm] 特性;真实存在的是 [SupplyParameterFromQuery] 和 [SupplyParameterFromRoute],仅支持 GET 场景的查询或路由参数绑定;表单 POST 应使用 EditForm + 模型…
-
C#如何进行TCP/IP通信 C# Socket编程入门教程
C# TCP/IP通信推荐初学者使用TcpClient/TcpListener:客户端用Connect连接、GetStream获取NetworkStream读写,注意Flush和资源释放;服务器用TcpListener.Start监听、AcceptTcpClient接收连接并异步处理;底层可选Soc…
-
C# gRPC与Web API的性能对比 – 何时选择使用gRPC
gRPC在吞吐量和延迟上优于Web API,因基于HTTP/2、支持多路复用与二进制序列化,QPS提升2–5倍,延迟降低40%–70%,适合高并发内部服务通信;而Web API基于HTTP/1.1 + JSON,兼容性好,适用于前端或第三方集成场景;gRPC通过.proto文件实现契约优先与类型安全…
-
.NET中的并发集合:线程安全的数据结构使用指南
.NET的并发集合通过无锁或细粒度锁实现高效线程安全,适用于生产者-消费者、缓存、日志收集等场景,如ConcurrentQueue用于FIFO任务调度,ConcurrentDictionary提供原子操作避免竞态条件,使用时应优先调用内置原子方法并根据并发需求选择合适类型,遍历时需注意快照非实时性,…
-
ASP.NET Core怎么实现用户认证 Identity框架入门教程
ASP.NET Core 中最推荐的用户认证方式是使用微软官方内置的 Identity 框架,它开箱即用,支持注册、登录、角色管理、密码重置和双因素认证等功能,并通过 UserManager、SignInManager 等核心服务实现安全可控的用户生命周期管理。 ASP.NET Core 中实现用户…