Telerik Report Packer每次都有不同的结果

时间:2019-05-24 12:07:28

标签: c# telerik telerik-reporting

这正在使用命名空间Telerik.Reporting.ReportPacker

XML输入永远不会更改,以下函数用于将XML转换为Telerik对象,然后转换为字节数组。

以下Senario的行为符合预期:

 var packing1 = GetTelerikReportFromXML(report.ReportXml);
 var sha1 = FileHasher.Hash(packing1);
 var sha1Try2 = FileHasher.Hash(packing1);

两个SHA1散列都相同。

但是,如果重新启动应用程序,则ReportPacker的输出将得到不同的结果(字节数组大小相同,但不同)。

与字节数组进行比较,似乎总是8个字节。

有人知道如何使ReportPacker每次产生相同的输出吗?

我已经确认输入XML不会改变。所以它不是散列或输入

static byte[] GetTelerikReportFromXML(string xmlContent)
{
                var settings = new System.Xml.XmlReaderSettings { IgnoreWhitespace = true };
                Report telerikReport;
                using (var xmlReader = XmlReader.Create(new StringReader(xmlContent), settings))
                {
                    var xmlSerializer = new ReportXmlSerializer();
                    telerikReport = (Report)xmlSerializer.Deserialize(xmlReader);
                    using (var ms = new MemoryStream())
                    {
                        var reportPacker = new ReportPackager();
                        reportPacker.Package(telerikReport, ms);
                        return  ms.ToArray();
                    }
                }
}

0 个答案:

没有答案