Страница 1 из 1

Сериализация StiReport

Добавлено: 16 фев 2015, 09:09
mishina
Добрый день!

Мне нужно сериализовать объект StiReport, чтобы предать через WCF сервер на клиент уже готовый отчет. Обычным BinaryFormatter не получится,так как класс не помечен как сериализеумый.

Я пробовала так на сервере

Код: Выделить всё

using (var stream = new MemoryStream())
            {
                var serializer = new StiSerializing();
                serializer.Serialize(r, stream, "myapp");
                stream.Flush();
                stream.Position = 0;
                resultString =  Convert.ToBase64String(stream.ToArray());  
            }
и так на клиенте

Код: Выделить всё

byte[] b = Convert.FromBase64String(resultString );
            using (var stream = new MemoryStream(b))
            {
                var serializer = new StiSerializing();
                stream.Seek(0, SeekOrigin.Begin);
                serializer.Deserialize(report, stream, "myapp");
            }
            var newReport = report as StiReport;

но newReport = null.

Что здесь может быть неправильно или есть другой способ передать готовый отчет через wcf?

Re: Сериализация StiReport

Добавлено: 16 фев 2015, 11:34
Anton Lozovskiy
Здравствуйте,

А почему бы не использовать уже готовые методы у StiReport:
SaveToByteArray
SaveToString
SavePackedReport

и соответствующие методы для загрузки LoadFrom...

Спасибо.