Как сериализовать System.Configuration.SettingsProperty - PullRequest
1 голос
/ 04 октября 2008

Мне нужно сериализовать объект класса System.Configuration.SettingsProperty и System.Configuration.SettingsPropertyValue через WCF.

Ответы [ 2 ]

3 голосов
/ 05 октября 2008

Использование вашего собственного класса является разумным вариантом. Вы также можете использовать настройки дизайнера VS, если хотите.

Конструктор VS сохраняет настройки свойств в классе ApplicationSettingsBase . По умолчанию эти свойства сериализуются / десериализуются в XML-файл для каждого пользователя. Поскольку для службы WCF нет пользовательского контекста, это не будет работать. Вы можете переопределить это поведение, используя пользовательский SettingsProvider , который позволяет довольно легко сохранять свойства там, где вы хотите. Просто добавьте атрибут SettingsProvider в сгенерированный VS класс Settings:

[SettingsProvider(typeof(CustomSettingsProvider))]
internal sealed partial class Settings { 
   ...
}

Хорошим примером этого является RegistrySettingsProvider .

Редактировать: При первом прочтении вашего вопроса я подумал, что вы спрашиваете, как сохранить настройки в службе WCF. Теперь я вижу, что вы хотите передать настройки через WCF. Класс SettingsProvider также может быть использован для этой цели.

0 голосов
/ 04 октября 2008

Я предполагаю, что вы спрашиваете, потому что вы не можете вернуть список SettingProperty. Я сам создал бы сериализуемый класс и загрузил бы там свойства.

...