Как проверить, существует ли свойство в настройках? - PullRequest
0 голосов
/ 23 мая 2018

Я использовал для определения свойств Настройки во время разработки в Visual Studio, но я хотел добавить свойства во время выполнения.Я искал в Google и нашел способ, подобный этому,

        var s = Properties.Settings.Default;
        var property = new System.Configuration.SettingsProperty("x")
        {
            DefaultValue = -1,
            IsReadOnly=false,
            PropertyType=typeof(int),
            Provider = Properties.Settings.Default.Providers["LocalFileSettingsProvider"],
        };
        property.Attributes.Add(typeof(System.Configuration.UserScopedSettingAttribute), new System.Configuration.UserScopedSettingAttribute());

Проблема в том, как узнать, существует это свойство или нет?Это свойство не будет перед добавлением во время выполнения.Я попытался найти метод Contains (), но такого метода не было, и выполнение приведенного ниже кода не сработало, поскольку оно не просто возвращало ноль, но вызывало исключение.

        var s = Properties.Settings.Default;
        var x = s["x"];
        if (x != null)
        {
        }

1 Ответ

0 голосов
/ 23 мая 2018

Properties - это коллекция SettingsProperty, поэтому, если вы правильно ее приведете, вы можете отправлять запросы LINQ по типизированной коллекции.Остальное довольно просто:

  var exists = s.Properties.OfType<SettingsProperty>().Any(p => p.Name == "x");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...