c# - 需要帮助序列化多个对象以使用 C# 缓存到 redis

标签 c# xml serialization redis

我正在尝试弄清楚如何将多个对象序列化为一个巨大的 XML 文件,以将其批量写入 redis 缓存服务器。我知道如何序列化来自每个单独对象的数据,但我需要将所有对象的所有数据批处理到一个文件中并将其写入 redis。

问题: 如何使用多个数据变量批量序列化多个对象

生成每个对象的代码:

private void Initialize()
        {
            // runs through a list of 600ish skills and creates a call data generator for each skill
            foreach (var skill in _skills)
            {
                IFeedServiceAgent feedService = new FeedServiceAgent();
                feedService.Subscribe(skill.SkillNumber.ToString(), skill.CallServer);
                CallDataGenerator calldata = new CallDataGenerator(_callDataRepo, feedService);
                _callDataGenerators.Add(calldata);
                Console.WriteLine("Instance of " + skill.SkillNumber + " From Call Server " + skill.CallServer + " is preparing to start");
            }
        }

每个生成器都生成相同类型的信息,但在我们的调用系统上用于不同的技能。大约有 600 种技能,所以有 600 个生成器。

生成的数据示例:

_skillData.OldestCall = e.CmsData.Skill.OldestCall;
_skillData.AgentsStaffed = e.CmsData.Skill.AgentsStaffed;
_skillData.AgentsAuxed = e.CmsData.Skill.AgentsInAux;
_skillData.AgentsAvailable = e.CmsData.Skill.AgentsAvailable;
_skillData.AgentsOnCalls = e.CmsData.Skill.AgentsOnAcdCall;
_skillData.CallsWaitingInQueue = e.CmsData.Skill.InQueueInRing;
_skillData.Asa = e.CmsData.Skill.AnswerTimePerAcdCall;
_skillData.TimeSubmitted = DateTime.Now;
_skillData.EstimatedHoldTimeLow = e.CmsData.Skill.ExpectedWaitTimeLow;
_skillData.EstimatedHoldTimeMedium = e.CmsData.Skill.ExpectedWaitTimeMedium;
_skillData.EstimatedHoldTimeHigh = e.CmsData.Skill.ExpectedWaitTimeHigh;
_agentData.AgentName = item.AgName;
_agentData.AgentExtension = item.Extension;
_agentData.AgentAuxReason = item.AuxReasonDescription;
_agentData.AgentId = item.LoginId;
_agentData.AgentAcdState = item.WorkModeDirectionDescription;
_agentData.AgentTimeInState = DateTime.Now - item.DateTimeUpdated;
_agentData.TimeSubmitted = DateTime.Now;

最佳答案

所以看起来我最初创建的生成器列表是正确的。如果您创建一个列表,然后序列化该列表对象,它将包含其中的所有公共(public)对象。我的最初没有工作,因为我的生成器内部的对象是私有(private)的。 感谢@jdweng 指出这一点!

关于c# - 需要帮助序列化多个对象以使用 C# 缓存到 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46062010/

相关文章:

c# - 光线和 3D 人脸相交

xml - XQuery [value()] : 'value()' requires a singleton (or empty sequence), 找到类型为 'xdt:untypedAtomic *' 的操作数

c# - XmlTextWriter序列化问题

java - 为什么java内置序列化比Gson差?

java - 如何在反序列化期间获取对 Android Context 的引用?

c# - 使用 "using"语句进行处理

c# - 用c#替换图像中的颜色

c# - 在 C# 中向表中插入记录时无法将 NULL 值传递给参数

基于 Android 卡片的游戏,需要帮助才能开始

python - 尝试使用Python解析xml格式的docx文档以打印粗体单词