【问题标题】:What serializer is used in RDLC reports?RDLC 报告中使用什么序列化程序?
【发布时间】:2017-06-04 09:03:52
【问题描述】:

我已经学会了如果你的对象不能被正确序列化,那么 RDLC 报告生成不起作用,不幸的是,它往往会以与你的对象或属性完全无关的方式失败,或者无法序列化的属性/反序列化。

因此,在生成 RDLC 报告之前,我会测试对象以查看它们是否可以正确序列化 - 这会给出一个早期异常消息,以确定对象在尝试生成报告之前未序列化的确切原因。

这很好用——除了我还没有完全确定要使用哪个序列化程序进行测试。我试过 BinaryFormatter、XmlSerializer、ObjectStateFormatter。这些中的每一个都无法序列化我的一些对象,但这些对象在传递给 RDLC 报告时似乎可以成功工作。即我的测试有时会错误地识别出不能在 RDLC 报告中使用的对象,而实际上它可以。

因此 - 是否有人确切知道如何使用 RDLC 报告序列化对象?

【问题讨论】:

    标签: c# serialization reporting-services


    【解决方案1】:

    我查看了Microsoft.ReportViewer.Common.dll 中的代码,它似乎具有用于将对象序列化为 XML 的自定义代码,但随后使用System.Xml.dll 中的XML Serializer 序列化不是基元、数组或结构(如自定义类)。所以它似乎使用了它自己的自定义序列化和 XML 序列化器的组合。

    最好假设您的根对象可以序列化,只要所有自定义子对象(通过属性引用)都可以由 XML 序列化程序处理。

    【讨论】:

    • 谢谢!您还提示我安装反汇编程序 (JetBrains dotPeek),所以现在我的工具箱中有一个新玩具可以玩(因为我在 referencesource.microsoft.com 上找不到 ReportViewer)
    • 不熟悉那个。我使用 Telerik JustDecompile(免费下载)并将其指向 Report Viewer 程序集。
    猜你喜欢
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多