Как сериализовать System.Configuration.SettingsProperty

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

2 ответа

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

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

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

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

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

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

Другие вопросы по тегам