POCO = Plain Old CLR/CSharp Object

POCO = Plain Old CLR/CSharp Object

直译就是"普通的、旧式的 C# 对象"。

对比一下就清楚了:

POCO 非 POCO
继承 不继承任何框架类 继承 EntityObjectDataRecord
特性 不带任何 ORM/序列化特性 [DataContract][JsonProperty] 满天飞
依赖 独立,不引用任何外部程序集 依赖 EF、NHibernate、Dapper 等
本质 就是一个普通的类,用来装数据 被框架绑架的"数据容器"
复制代码
// ✅ POCO ------ 就是普通 C# 类
public class ResilienceOptions
{
    public bool EnableResilience { get; set; } = true;
    public int RetryCount { get; set; } = 3;
}

// ❌ 非 POCO ------ 被框架绑架
public class Product : EntityObject   // 依赖 EF
{
    [Key]
    public int Id { get; set; }
}

所以"ResilienceOptions 使用 POCO + IOptions 模式"的意思就是:它就是一个普普通通的配置类,不绑定任何 ORM 或框架,用 Microsoft.Extensions.Options 来绑定配置,两边都干净。

相关推荐
Byron Loong11 小时前
【c#】Bitmap释放之 大象与蚊子
开发语言·c#
临风细雨12 小时前
从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层
人工智能·rust·c#
吴可可12312 小时前
C# CAD二次开发自定义实体实现
c#
z落落13 小时前
C# WinForm 线程池与事件等待+进度条暂停恢复实战案例
开发语言·c#
酷酷的身影15 小时前
Managers/APConfigManager.cs
开发语言·ui·c#
贾斯汀frank1 天前
C# 15 类型系统改进:Union Types
开发语言·windows·c#
曹牧1 天前
Visual Studio:输出路径
windows·c#
时代的狂1 天前
如何理解 C# 的 async 和 await
c#·.netcore·async·await
xiaoshuaishuai81 天前
C# AI实现PR处理、单元测试
开发语言·c#·log4j
LONGZHIQIN1 天前
C#基础复习笔记
开发语言·笔记·c#