.NET Standard应用如何及是否应将类对象添加至Resources文件夹
.NET Standard 类实例存储方案说明
预初始化类存入Resources文件夹的实现方式
Resources文件夹默认用于存储编译时嵌入程序集的静态资源,无法直接存储自定义类的实例对象,但可以通过以下路径实现等价需求:
- 将初始化完成的类实例序列化为JSON、XML或二进制文件,将该文件放入Resources目录,设置文件的
生成操作属性为嵌入的资源,程序运行时读取对应资源流后反序列化,即可拿到提前初始化好的类实例。 - 若类的初始化参数均为固定值,也可以直接在项目的
Resources.resx文件中添加对应配置项,封装统一的实例生成方法读取资源配置直接实例化类,相当于把初始化参数提前固化到资源文件中。
两种实现方案的优劣对比
预存序列化实例到Resources的适用场景
适合类实例参数完全固定、不需要运行时动态调整的场景,比如内置默认配置模板、固定业务规则实例等
- 优势:不需要在业务代码中硬编码大量初始化赋值逻辑,修改默认实例仅需更新资源文件,无需调整业务代码,版本管理更清晰
- 劣势:存在序列化、反序列化的性能开销,需要处理类结构变更时的序列化兼容性问题,类结构更新后需要同步重新生成资源中的序列化文件
运行时直接初始化类的适用场景
适合实例参数需要根据运行时环境动态调整、或者类结构迭代频率较高的场景
- 优势:没有序列化相关的性能开销,初始化逻辑可以灵活增加分支适配不同场景,类结构变更后不需要额外维护资源文件
- 劣势:大量固定参数的初始化逻辑硬编码在代码中,修改默认值需要调整代码重新编译。
你可以根据自己的业务场景选择对应方案:如果是固定的通用类实例模板,优先选择资源存储方案;如果实例需要适配动态参数、或者初始化逻辑频繁调整,运行时直接初始化的灵活度更高。
内容的提问来源于stack exchange,提问作者user10796522
相关产品推荐
相关产品推荐

