Сохранение класса матрицы в настройках приложения VB.net - PullRequest
1 голос
/ 27 июля 2011

В VB.net у меня есть матричный объект, который я пытаюсь сохранить в настройках приложения, и я не могу восстановить настройки правильно.

Private mMatrixHR As New Matrix
...
My.Settings.MatrixHR = mMatrixHR
...
My.Settings.Save()

Когда я смотрю на файл user.config, ясм:

        <setting name="MatrixHR" serializeAs="Xml">
            <value>
                <Matrix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
            </value>
        </setting>

Очевидно, что матричные данные не были сохранены в файл.

Кто-нибудь может объяснить, что я делаю неправильно?

Спасибо

J

Ответы [ 3 ]

0 голосов
/ 27 июля 2011

Класс System.Drawing.Drawing2d.Matrix не сериализуем.Вызов

mMatrixHR.GetType().IsSerializable()

вернет False.

0 голосов
/ 28 июля 2011

Класс должен быть сериализуемым в XML для сохранения в настройках приложения. Чтобы быть XML-сериализуемым, класс должен иметь свойства чтения / записи (только те свойства будут сохранены в XML). Поскольку класс Matrix имеет только свойства ReadOnly, ничего не сериализуется.

Вам придется создать свой собственный класс, который предоставляет данные, которые вы хотите сериализовать, со свойствами чтения / записи.

0 голосов
/ 27 июля 2011

это класс матрицы dot.net

System.Drawing.Drawing2D.Matrix

Поскольку я могу выбрать этот тип в конфигурации настроек приложения, я предполагал, что он будет сериализуемым.

J

...