Можно ли сериализовать настройки приложения c # в формате, отличном от XML (protobuf-net)? - PullRequest
1 голос
/ 16 марта 2011

Можно ли сериализовать настройки приложения c # в формате помимо XML?Я не могу найти ничего, что поддержало бы теорию, которую можно.В частности, формат, который я пытаюсь сохранить, это формат буфера протокола через protobuf-net.

Если я не могу и мне нужно записать файл сохранения «вручную», как мне получитьпуть, который Visual Studio (2010) использует для сохранения настроек приложения?Я могу получить путь

... \ AppData \ Local \ $ {Название компании} \ $ {Имя приложения} \

Проблема в том, что Visual Studioна самом деле сохранение настроек моего приложения во что-то вроде

... \ AppData \ Local \ $ {Название компании} \ $ {Имя приложения} .exe_Url_uzttbld0ofvuokf2y4ynfn05v334i4tp \

Я быкак для файла настроек xml и файла protobuf-net в одном месте.

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

(Предполагается, что вы пишете приложение WinForms или WPF. Правила для веб-приложений различны)

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

вы не можете изменить формат стандартного файла конфигурации. Классы в пространстве имен System.Configuration понимают только файлы конфигурации XML. Вам нужно написать собственную поддержку сериализации / десериализации для файла protobuf-net, и если вы хотите / должны использовать пространство имен System.Configuration, вам придется синхронизировать содержимое вашего файла со стандартным файлом конфигурации.

0 голосов
/ 16 марта 2011

Я бы не трогал сам основной конфиг, но вы можете тривиально сохранить путь как параметр, т.е.

<fooSettings source="myfile.bin"/>

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

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

...