C# 报表文档序列化
我想使用XML序列化来序列化ReportDocument,但徒劳,这是我的代码:C# 报表文档序列化,c#,.net,serialization,crystal-reports,xml-serialization,C#,.net,Serialization,Crystal Reports,Xml Serialization,我想使用XML序列化来序列化ReportDocument,但徒劳,这是我的代码: public String serialiser (ReportDocument rd) { StringWriter sw= new StringWriter(); System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(ReportDocum
public String serialiser (ReportDocument rd)
{
StringWriter sw= new StringWriter();
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(ReportDocument));
xs.Serialize(sw, rd);
return sw.ToString();
}
注意:CrystalDecisions.CrystalReports.Engine.ReportDocument
我得到了以下错误:
An error occurred during the reflection of the type 'CrystalDecisions.CrystalReports.Engine.ReportDocument'.
我怎么能连载它 我猜该类型没有标记为可序列化。你试过做二进制序列化吗
public static byte[] SerializeToBytes<T>(T original)
{
byte[] results;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(stream, original);
stream.Seek(0, SeekOrigin.Begin);
results = stream.ToArray();
}
return results;
}
公共静态字节[]序列化为字节(T原始)
{
字节[]结果;
使用(MemoryStream stream=new MemoryStream())
{
BinaryFormatter BinaryFormatter=新的BinaryFormatter();
序列化(流,原始);
stream.Seek(0,SeekOrigin.Begin);
结果=stream.ToArray();
}
返回结果;
}
序列化工作正常,但反序列化时出现异常:T result=(T)bf.Deserialize(ms);->调用的目标已引发异常,它是targetInvocationException它是否在不同的会话或不同的服务器上反序列化?不是,我尝试过简单的对象它可以工作,但我需要的对象出现异常:/Crystal Reports似乎不允许这样做。如果您需要将其保存到某个地方,最好的办法可能是将其转换为PDF或RTF,然后将其序列化为字节,并将其放在您想要保存的位置。