Par*_*roX 5 c# xml generics serialization dapper
我将SQL结果存储到动态List中,该List具有基础DapperRow类型.我正在尝试序列化/反序列化哪个XMLserializer抱怨的List:
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>我从小巧玲珑的获得和序列化和反序列化使用正确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);
}
Run Code Online (Sandbox Code Playgroud)
它很难看,所以我希望出现更优雅的解决方案
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |