добавить пользовательский тип в settings.settings

Я хотел бы использовать файл конфигурации .settings для сохранения этой структуры:

struct sR22Protocole
{
    Int32 inputkey;
    Int32 outputkey;
    Int32 voltage;
    Int32 Ohm;
    Int32 Correction;
};

В дизайнере настроек я могу добавить другой тип, но он не показывает мою структуру в разделе просмотра. Есть ли способ, которым дизайнер имеет доступ к моей структуре? Если нет, есть ли способ добавить его программно?


person Mr.Alexz    schedule 23.09.2013    source источник


Ответы (3)


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

http://www.blackwasp.co.uk/CustomAppSettings.aspx

person Matthew    schedule 23.09.2013

Ваш тип должен иметь атрибут System.Configuration.SettingsSerializeAsAttribute. Параметр перечисления типа System.Configuration.SettingsSerializeAs указывает, как значение будет сериализовано. Возможные значения:

  • Нить
  • XML
  • Бинарный
  • ProviderSpecific

Поскольку этот атрибут можно применять только к типам классов, ваш собственный тип должен быть классом.

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

Если вы только что объявили свой класс, дизайнер не примет тип, пока вы не создадите свое решение.

person florien    schedule 14.09.2016

Просто зайдите в раздел обзора и введите имя структуры, класса или перечисления, добавив к нему префикс пространства имен вашего типа. Затем он также будет добавлен в раскрывающийся список для вашего следующего использования.

В вашем примере: YourTypeNamespace.sR22Protocole

person Shahrokh Bah    schedule 02.05.2016
comment
Можете ли вы объяснить немного больше? - person Dieter Meemken; 02.05.2016
comment
Какую версию Visual Studio вы используете? Я только что попробовал это на VS2013 Express с перечислением, и это не сработало. (Это дает тип «X» не определен. ошибка.) - person jmbpiano; 06.05.2016
comment
Он работал с VS 2010 Express и пользовательским типом перечисления. - person Pollitzer; 18.08.2016
comment
Если вы используете новый определенный тип, скажем, Enum, вам следует один раз перестроить его, чтобы сделать тип известным. Я только что попытался добавить новый Enum как тип. Это было неизвестно, и я подумал, что сделал что-то не так. Но мне просто нужно было перекомпилировать... - person jreichert; 21.12.2017
comment
@jmbpiano: В то время я использовал сообщество VS 2015. - person Shahrokh Bah; 24.05.2018