c# - 如何拆分包含许多属性的大型请求对象,其中一个是巨大的值列表
问题描述
直接说对不起。我有点新。
我有一个包含几个属性的对象,其中一个属性本身就是一个列表。现在,我们不知道输入负载中的值列表有多大(可能是 1000,也可能是 100,000)。我们在处理之前记录此请求有效负载。
我们用_logger.Verbose ("Some String...", {object});
当我们记录时,日志文件(我们使用 Serilog)以 JSON 格式将其保存为具有巨大值的记事本文件。
现在,当输入太大时,记录器会尝试记录但由于有效负载大而失败并重试多次。
我正在寻找一种方法来拆分或做一些循环和拆分和存储或其他东西。我不知道如何在 C# 代码中做。我尝试谷歌搜索并研究了很多但徒劳无功。我找到了 Lambda 的 SKIP 和 TASK 方法,但不确定如何使用。
下面的代码:在这种情况下,想象一下,“模型”就像 1000,或者 100,1000 它可以是任何东西。我只是在 C# 中寻找一个循环逻辑来划分一个像样的数字和进程。
public class Make
{
public int ID { get; set;}
public string Name { get; set;}
public string Category { get; set;}
public List<Model> Models { get;set;}
}
public class Model
{
public string Name { get; set;}
public string County { get; set;}
public string Submodel { get; set;}
}
public ProcessCars ( Make object)
{
_logger.Verbose ("Some String...", {object});`
// Processing///
//.....//
}
解决方案
我了解您的目的是查看或调试列表的值。
如果我是你,我会问自己几个问题
我需要写下所有的值吗?为什么我不能在登录之前先过滤?
当您可以登录到数据库时,写入文本文件的目的是什么?Serilog 支持数据库日志记录。
将大值记录到文本文件是否是最佳实践?
推荐阅读
- r - 如何传递循环迭代的值并在 R 的循环中使用它?
- javascript - 当 chrome 开发工具关闭时,ajax 加载的 html 中的脚本标签不起作用
- c++ - 为什么空 IP 地址将计算机名称解析为 204.204.204.204?
- c# - Azure AD b2b "Read all users' basic profiles" permission
- docker - 使用 DOCKER 设置 Pebble SDK
- powerbi - 使用 Power Query 加载保存为 .xls 的 *.htm 文件(从第 5 行开始)
- git - 在 git 中更改源分支
- javascript - 将活动类添加到导航项
- cassandra - OpsCenter:过滤掉不相关的磁盘
- javascript - 在循环内使用 Promise