Как сериализовать 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. Я сам создал бы сериализуемый класс и загрузил бы там свойства.