c# - C# IoC 项目结构标准
问题描述
IoC C# 项目的推荐文件夹结构是什么?对于 MVVM 项目,标准是创建名为 Views 和 ViewModels 的文件夹(以及将接口和单元测试类放在哪里?)
如果一个 DLL 项目没有视图,但公开了许多要通过 IoC 创建的类,那么我的项目中应该有哪些文件夹呢?
此外,当我开始将代码重构为 IoC 时,我遇到了 SettingsFile 类的问题,该类包含序列化到文件中的数据。它包含几个方法:
- 无效的 SetDefaultValues()
- 设置文件加载()
- 无效保存()
- 字符串验证()
- 设置文件复制()
主要问题在于 Load,因为反序列化对象会创建一个新的类硬实例,从而绕过 IoC 的原则。处理场景的正确方法是什么?
我正在考虑将所有代码移出该类,以便该类仅负责在没有任何代码的情况下进行序列化/反序列化,然后将其从 IoC 中排除。这是正确的做法吗?使用 Entity Framework 和使用任何自动生成的表类时,这是一个类似的问题。
谢谢
解决方案
答案是将数据类与行为类分开。SettingsFile 以及任何 EntityFramework 类都包含纯数据。通过 IoC 进行的依赖注入仅适用于行为类。
推荐阅读
- quarkus - 未使用 Quarkus 调用 AroundInvoke
- nginx - 与organizr一起使用的简单的nginx反向代理
- java - 如何在没有ImageView的TextView中间的TextView上添加图像
- jquery - 使用 jquery 与兄弟姐妹一起显示数据时出现问题
- r - 根据每行的列间隔分配值的有效方法
- python - 尝试将大量数据从 BigQuery 传输到 MongoDB
- eclipse - 我可以更改 Eclipse 进度条的进度条样式(如条纹)吗?
- c# - 如何在c#中减去路径的最后一个元素?[解决了]
- php - 每个钩子有条件地要求 M2O 入口
- html - 样式下拉 a11y 和没有 js?