.NET получение и установка значений RegistryKey непосредственно в свойстве - PullRequest
1 голос
/ 25 февраля 2011

Я получаю и устанавливаю значение параметра реестра непосредственно в свойстве. Ключ открывается при запуске программы и закрывается при выходе.

    public bool AlwaysSyncBeforeRun
    {
        get{ return Convert.ToBoolean(MayaRegistryKey.GetValue("AlwaysSyncBeforeRun")); }
        set { MayaRegistryKey.SetValue("AlwaysSyncBeforeRun", value); }
    }

Это свойство не предназначено для частого использования.

Это хорошая идея?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

Я не думаю, что это хорошая идея, так как разработчик, использующий ваш класс, может не знать о том, что происходит внутри свойства, и доступ к реестру имеет последствия для безопасности.Если приложение, использующее ваш класс, не имеет разрешения на доступ к реестру, то простое получение свойства вызовет исключение.

Для этого сценария я бы лучше использовал это свойство для хранения значений в памяти и предоставления некоторой загрузки.() метод для заполнения свойства и метод Save (), который можно вызывать всякий раз, когда приложение готово сохранить в реестр.

Эта ссылка из Руководства по проектированию .NET Framework может содержать дополнительный контекст: Выбор между свойствами и методами

1 голос
/ 25 февраля 2011

Если он не предназначен для частого использования, почему вы держите его открытым?

Вы делаете что-то подобное для повышения производительности.Но, в вашем случае, вы не используете его часто.Итак, я предлагаю вам открыть ключ, прочитать / записать значение и закрыть его.Это будет безопасно.

0 голосов
/ 25 февраля 2011

Многие люди говорят, что у вас вообще не должно быть функциональности в собственности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...