C# 报表文档序列化

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

我想使用XML序列化来序列化ReportDocument,但徒劳,这是我的代码:

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,然后将其序列化为字节,并将其放在您想要保存的位置。