Исключение сериализации UWP SyncFusion SfDataGrid

Я пытаюсь использовать компонент SfDataGrid в своем приложении UWP, и все работает нормально в режиме отладки. Когда я переключился в режим выпуска для регрессионного тестирования приложения перед публикацией в магазине Windows, приложение выдает исключение во время сериализации сетки.

У меня есть SfDataGrid, определенный с 4 текстовыми столбцами, 1 числовым столбцом и 1 столбцом шаблона. Столбец шаблона просто включает кнопку удаления, чтобы пользователь мог удалить строку.

У меня есть способ вернуть параметры сериализации следующим образом:

private SerializationOptions GetGridSerializationOptions()
{
    return new SerializationOptions
    {
        SerializeFiltering = false,
        SerializeColumns = true,
        SerializeGrouping = true,
        SerializeSorting = true,
        SerializeTableSummaries = true,
        SerializeCaptionSummary = true,
        SerializeGroupSummaries = true,
        SerializeStackedHeaders = true
    };
}

Затем у меня есть другой способ сериализации настроек сетки следующим образом:

private void RetrieveDefaultGridSettings()
{
    using (MemoryStream ms = new MemoryStream())
    {
        gridReport.Serialize(ms, GetGridSerializationOptions());
        _defaultGridSettings = Convert.ToBase64String(ms.ToArray());
    }
}

Я следил за документацией SyncFusion (https://help.syncfusion.com/uwp/datagrid/serialization-and-deserialization), в котором описывается, как сериализовать столбцы шаблона. У меня все отлично работает в режиме отладки, но когда я переключаюсь в режим выпуска, я получаю исключение в этой строке:

gridReport.Serialize(ms, GetGridSerializationOptions());

Исключение составляют:

System.Runtime.Serialization.InvalidDataContractException: атрибут KnownTypeAttribute для типа Syncfusion.UI.Xaml.Grid.SerializableGridColumn указывает метод с именем KnownTypes для предоставления известных типов. Статический метод KnownTypes () для этого типа не найден. Убедитесь, что метод существует и помечен как статический.

Я взглянул на класс SerializableGridColumn и увидел общедоступный статический метод KnownTypes, поэтому я действительно не понимаю, почему происходит это исключение. Еще больше меня смущает, почему это происходит только в режиме выпуска.

В попытке решить проблему я попытался сослаться на весь SDK, удалить SDK и сослаться на определенные сборки (Syncfusion.SfGrid.UWP, Syncfusion.Data.UWP, Syncfusion.SfInput.UWP, Syncfusion.SfShared.UWP, Syncfusion.SfGridConverter .UWP, Syncfusion.XlsIO.UWP и Syncfusion.Pdf.UWP), но ни один из них не дает другого результата, и исключение все равно возникает, но только в режиме выпуска.

Отключение параметра «Компилировать с помощью цепочки инструментов .NET Native» действительно решает проблему, но не является практическим решением, поскольку это не позволяет мне публиковать приложение в магазине Windows.

Большое спасибо за любую помощь, которую кто-либо может предоставить.


person Mathew Rimmington    schedule 14.05.2020    source источник


Ответы (1)


Исчерпав все возможные проблемы с моим собственным кодом, я зарегистрировал проблему с SyncFusion. Они изучают проблему и, надеюсь, скоро исправят ее.

person Mathew Rimmington    schedule 04.06.2020