net
-
Blazor 怎么实现一个全局通知服务
Blazor全局通知服务通过创建NotificationService管理通知队列并触发UI更新,配合NotificationItem组件渲染,注册为scoped服务后在任意组件中注入调用Show()方法即可显示通知。 Blazor 实现全局通知服务,核心是创建一个可被任意组件注入、跨页面共享状态的…
-
Dapper如何优雅地关闭和释放连接 Dapper连接管理最佳实践
Dapper不管理连接生命周期,需用using确保连接及时归还连接池;正确做法是每次查询用using包裹SqlConnection,避免手动Open/Close或复用连接;连接池应合理配置Max/Min Pool Size和Connection Lifetime。 Dapper本身不管理连接生命周期…
-
Blazor IStringLocalizer 多语言实现教程
Blazor 多语言核心是 IStringLocalizer + .resx 资源文件 + 语言切换逻辑,不依赖 JS;需在 Program.cs 注册 AddLocalization(),按规范命名资源文件(如 SharedResource.zh-CN.resx),组件中 @inject IStr…
-
C#怎么用Unsafe类 C#不安全代码与指针操作
C#中不存在名为Unsafe的公共类,真正使用的是unsafe上下文和指针语法;需在项目中启用AllowUnsafeBlocks,再用unsafe块、指针及fixed语句进行内存操作。 Unsafe 类本身不是 C# 中的一个可直接使用的类,这是个常见误解。C# 中没有名为 Unsafe 的公共类型…
-
C# WebClient和HttpClient的比较 – 应该选择哪一个
推荐使用 HttpClient 而非 WebClient,因前者支持异步优先、连接复用、HTTP/2/3、统一消息模型及 IHttpClientFactory 管理,后者已过时且功能受限、易致资源泄漏。 HttpClient 是当前 .NET 中推荐的 HTTP 客户端,WebClient 已被标记…
-
Blazor MarkupString 的正确使用方法
MarkupString 的核心作用是安全地渲染 HTML 字符串,仅适用于可信静态 HTML 片段,不支持 Razor 语法、事件绑定或组件标签,且会自动修正非法标签;误用可能导致 XSS 或功能失效。 MarkupString 的核心作用是**安全地渲染 HTML 字符串**,但它不是万能的“H…
-
.NET 8 Blazor Auto Render Mode 配置教程
Blazor .NET 8 的 Auto 渲染模式需通过 AddAutoRenderMode() 注册服务、App.razor 中设置 @rendermode=”new AutoRenderMode()”、页面添加 [RenderModeAuto] 属性,并确保部署时响应头含…
-
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 是标准且推荐的日志…