猿问

我应该 DeepCopy List<T> 而不是从 JSON 中创建实例吗?

例如List<Employee>,我有一个对象列表,列表中的每个员工都将从 .JSON 文件加载。我还需要为List<Employee>我需要创建的新员工创建新实例并更改新实例的属性,因为 JSON 文件为每个员工提供了一个体系结构或工作流基础,我不需要每次需要实例时都从头开始创建的List<Employee>

简而言之, 我什么时候需要一个新实例?我应该再次创建List<Employee>和读取 JSON 文件吗?或者我应该使用DeepCloner扩展作为例子吗?用于克隆基础List<Employee>并启动 List 的新实例?

此外,json 文件可能稍后会更改。所以克隆人只会使用旧的员工名单!

当使用 DeepCloner 扩展从 main 创建超过 10 个实例时,我发现性能很棒List<Employee>List<Employee>但是通过再次读取相同的 JSON 文件创建一个需要更多时间。

什么是好的场景,第一个实例必须从 json 加载,但是第二个和第三个实例呢?它也应该阅读 json 吗?json 可能后来改变了?或者只是做 DeepCloner ?或者如何很好地实现它。

关键字: Main List<Employee>:这个 main 必须从 JSON 读取的第一个实例。

Mihir Dave回答对我有好处。


绝地无双
浏览 85回答 1
1回答

守候你守候我

如果我要实现这个,我会做类似下面的事情。让我们假设 DeepClone 是一种缓存机制。在使用缓存时,您还应该考虑缓存破坏。那么我们将如何实施呢?创建一个返回 List 以及两个静态变量的方法private static List<Employee> globalEmployees = null;private static DateTime globalFileModifiedTime;public static List<Employee> GetEmployees(){}现在,此方法应该知道何时从文件中读取以及何时使用 DeepCloner。什么时候不使用 DeepCloner?什么时候globalEmployees为空当全局员工文件修改时间比我们存储的时间更新时globalFileModifiedTime注意:每次你从文件中读取,更新globalEmployees等globalFileModifiedTime你可以使用 DeepCloner 进行下一个请求对于任何其他用例,您可以使用 DeepCloner。
随时随地看视频慕课网APP
我要回答