Использование HashSet <T>в свойствах C #. - PullRequest
1 голос
/ 07 мая 2009

Я создаю несколько инструментов C # для игры, над которой я работаю, и добавляю раскрывающееся меню "недавние файлы->".

Проблема в том, что я не могу открыть страницу C # «Настройки» в VS2008, чтобы позволить мне добавить типизированный HashSet. Там просто нет возможности сделать это.

Я получил все хакерские и вручную отредактировал файл "Settings.Designer.cs" в:

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public global::System.Collections.Generic.HashSet<String> RecentLibs {
        get {
            return ((global::System.Collections.Generic.HashSet<String>)(this["RecentLibs"]));
        }
        set {
            this["RecentLibs"] = value;
        }
    }

Это, кажется, работает просто отлично. Тем не менее, я знаю, что в какой-то момент эти изменения будут уничтожены с помощью генератора кода.

Какой правильный способ сделать это? Есть ли в C # встроенный тип, который я должен использовать для этой функциональности, а не просто HashSet?

Ответы [ 2 ]

3 голосов
/ 07 мая 2009

Не делай так. VS уничтожит любой код в Settings.Designer.cs.

Вместо этого откройте редактор настроек из VS (откроется редактор дизайна для файла Settings.settings и Settings.Designer.cs).

Затем нажмите F7, чтобы получить представление кода. VS автоматически создаст файл с именем Settings.cs, который является частичным классом, который используется совместно с файлом Settings.Designer.cs. Этот файл вы можете редактировать по своему усмотрению.

Однако ваши XML-записи в файле Settings.settings могут быть слишком жареными. Я бы сохранил их копию на всякий случай.

0 голосов
/ 07 мая 2009

Не уверен насчет «правильного» способа сделать это, но вы можете безопасно переместить свой код в частичный файл класса Settings.cs, не беспокоясь о том, чтобы Visual Studio их перезаписал.

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