2013-09-23 3 views
8

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

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

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

ответ

6

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

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

4

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

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

+0

Не могли бы вы объяснить немного больше? –

+0

Какую версию Visual Studio вы используете? Я просто попробовал это на VS2013 Express с перечислением, и это не сработало. (Он дает определение «Тип» X «не определено».) – jmbpiano

+0

Он работал с VS 2010 Express и пользовательским типом перечисления. – Pollitzer

4

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

  • Строка
  • Xml
  • Binary
  • ProviderSpecific

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

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

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