我已经学到了很难的方法,如果你的对象无法正确序列化,那么RDLC报告生成就不起作用了,不幸的是,它往往会失败的方式以及与你的对象或无法序列化的属性完全无关的消息化/反序列。
因此,在生成RDLC报告之前,我测试对象以查看它们是否可以正确序列化 - 这样就会在尝试生成报告之前提供一个早期异常消息,以确定对象未进行序列化的确切原因。
这很有效 - 除了我还没有完成哪个序列化器测试。我尝试过BinaryFormatter,XmlSerializer,ObjectStateFormatter。其中每个都无法序列化我的一些对象,这些对象在传递给RDLC报告时似乎仍能成功运行。即,我的测试有时会错误地识别出无法在RDLC报告中使用的对象,实际上它可以。
因此 - 是否有人确切知道如何使用RDLC报告序列化对象?
答案 0 :(得分:1)
我查看了Microsoft.ReportViewer.Common.dll
中的代码,似乎它有自定义代码,用于将对象序列化为XML,但后来使用XML Serializer
中的System.Xml.dll
来序列化不属于的子对象t基元,数组或结构(如自定义类)。所以它似乎使用了自己的自定义序列化和XML序列化器的组合。
最好假设您的根对象可以序列化,只要XML序列化程序可以处理所有自定义子对象(通过属性引用)。