2013-09-23 23 views
8

Chciałbym użyć .settings plik konfiguracyjny, aby zapisać ten struct:dodać niestandardowy typ w Settings.settings

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

w kreatorze ustawień, mogę dodać inny typ, ale nie pokazać moje struct w sekcja przeglądania. Czy jest jakiś sposób, że projektant ma dostęp do mojej struktury? Jeśli nie, czy jest jakiś sposób na dodanie go programistycznie?

Odpowiedz

4

Wystarczy przejść do sekcji przeglądarki i wpisać swój struct, klasy lub enum nazwę podczas poprzedzając go przestrzeni nazw typu . Następnie zostanie również dodany w menu rozwijanym do następnych zastosowań.

W przykładzie: YourTypeNamespace.sR22Protocole

+0

Czy możesz wyjaśnić trochę więcej? –

+0

Jakiej wersji Visual Studio używasz? Właśnie wypróbowałem to na VS2013 Express z wyliczeniem i to nie działało. (Daje "Typ" X "nie jest zdefiniowany." Error.) – jmbpiano

+0

Współpracował z VS 2010 Express i niestandardowym typem wyliczeniowym. – Pollitzer

4

Twój typ musi mieć atrybut SettingsSerializeAs(). Parametr enum typu SettingsSerializeAs określa, w jaki sposób wartość zostanie odcinkach, możliwe wartości to:

  • String
  • Xml
  • Binary
  • ProviderSpecific

Od tego atrybutu może być tylko zastosowane do typów klas, twój własny typ musi być klasą.

Po drugie, typ musi mieć konstruktor bez parametrów. Dzieje się tak, ponieważ jeśli nie ma wartości określonej dla ustawienia w pliku App.config, do ustawienia zostanie przypisana domyślna wartość typu ustawienia.

Jeśli właśnie zadeklarowałeś swoją klasę, projektant nie zaakceptuje typu, chyba że zbudowałeś swoje rozwiązanie.

Powiązane problemy