c# - 有什么方法可以使用 C# 在 .net 中对匿名类型进行 xml 序列化

标签 c# .net serialization anonymous-types

有什么方法可以在 .net 中序列化匿名类型吗?普通 XmlSerializer 失败,因为该类型没有定义无参数构造函数; NetDataContractSeralizer 失败,因为我们无法将 DataContract 或 Serializable 属性标记为匿名类。

那么有什么巧妙的解决方法还是我们做不到?

最佳答案

是的,可以序列化匿名类型。想到的最简单的方法是创建一个包装器对象,它实现 ISerializable 并使用反射来检查匿名类型的字段并适本地序列化它们。这会很丑陋,但会起作用。

不过我觉得更重要的问题是

Is it possible to deserialize an anonymous type?

答案是“不是一般意义上的”。匿名类型是特定于程序集的类型。因此,虽然可以针对特定的匿名类型以特定的方式进行操作,但在一般意义上这是不可行的,而且在不同的程序集之间也不可行,因为它们是内部的。

关于c# - 有什么方法可以使用 C# 在 .net 中对匿名类型进行 xml 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494605/

相关文章:

c# - 无法将值传回对象

c# - 使用 TextBoxFor 截断字符串

c# - 为什么使用 ConfigurationManager.GetSection 会导致 "SecurityException: Request failed"但 ConfigurationManager.OpenExeConfiguration 不会?

python - trie 的快速序列化

c# - 如何提高WPF中后台任务的性能?

c# - if (false == true) 在内部抛出异常时执行 block

.net - 给定一个 .winmd 文件,我们在哪里可以找到真正的实现 DLL?

.net - 如何在 WPF 应用程序中更改 DateTimePicker 的格式(例如 dd/MMM/yyyy)

c# - 将反序列化方法转换为异步

javascript嵌套类型对象到json并返回