gpt4 book ai didi

c# - XML 序列化小巧的结果

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:53 25 4
gpt4 key购买 nike

我将 SQL 结果存储到一个动态列表中,其中有一个底层 DapperRow 类型。我正在尝试序列化/反序列化 XMLserializer 提示的这个列表:

There was an error generating the XML document. ---> System.InvalidOperationException: To be XML serializable, types which inherit from IEnumerable must have an implementation of Add(System.Object) at all levels of their inheritance hierarchy. Dapper.SqlMapper+DapperRow does not implement Add(System.Object).

有没有办法解决这个问题(除了将结果明显地转换为我自己的具体对象之外),或者是否有可能以某种方式使 DapperRow 对象符合 System.Xml.XMLserializer 约束?

它表明我的结果数组是 System.Collections.Generic.List<dynamic> {System.Collections.Generic.List<object>}打开数组,它说每个对象的类型都是 object {Dapper.SqlMapper.DapperRow}

我认为是因为 DapperRows 现在基本上是 IDictionary<string, object> XML 有问题(我只能使用 System.Xml.XmlSerializer,所以不建议替代方案)。

我只想能够转一个List<dynamic>我从 Dapper 获得并使用 System.Xml.XmlSerializer 正确序列化和反序列化

最佳答案

我能够通过使用可序列化字典获得至少可序列化的内容:http://weblogs.asp.net/pwelter34/444961

            var results = conn.Query<dynamic>(sql, param);
var resultSet = new List<SerializableDictionary<string, object>>();
foreach (IDictionary<string, object> row in results)
{
var dict = new SerializableDictionary<string, object>();
foreach (var pair in row)
{
dict.Add(pair.Key, pair.Value);
}
resultSet.Add(dict);
}

它很丑,所以我希望能有更优雅的解决方案出现

关于c# - XML 序列化小巧的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com