2013-09-23 13 views
8

Vorrei utilizzare .settings file di configurazione per salvare questo struct:aggiungere tipo personalizzato in settings.settings

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

Nella finestra di progettazione impostazioni, posso aggiungere tipo diverso ma non mostrare il mio struct in la sezione Sfoglia. C'è un modo in cui il designer ha accesso alla mia struttura? Se no, c'è un modo per aggiungerlo programmaticamente?

risposta

6

Credo che la classe (o struct?) Debba essere in grado di essere serializzata da utilizzare nel file delle impostazioni. Ho seguito questo post del blog quando ho fatto questo per un oggetto predefinito in un'applicazione:

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

4

Basta andare nella sezione Sfoglia e digitare la struct, classe o enum nome mentre aggiungendo il prefisso dello spazio dei nomi del tipo . Quindi, verrebbe aggiunto anche nel menu a discesa per i tuoi prossimi utilizzi.

Nel tuo esempio: YourTypeNamespace.sR22Protocole

+0

Puoi spiegare un po 'di più? –

+0

Quale versione di Visual Studio stai usando? Ho appena provato questo su VS2013 Express con un enum e non ha funzionato. (Dà un errore "Type" X "non definito".) – jmbpiano

+0

Ha funzionato con VS 2010 Express e un tipo di enum personalizzato. – Pollitzer

4

tuo tipo deve avere un attributo SettingsSerializeAs(). Un parametro enum di tipo SettingsSerializeAs specifica come verrà serializzato il valore, i valori possibili sono:

  • String
  • XML
  • binario
  • ProviderSpecific

Poiché questo attributo può essere solo applicato ai tipi di classe, il tuo tipo deve essere una classe.

In secondo luogo, il tipo deve avere un costruttore senza parametri. Questo perché se non è specificato alcun valore per l'impostazione nel file App.config, il valore predefinito del tipo di impostazione verrà assegnato all'impostazione.

Se hai appena dichiarato la tua classe, il progettista non accetterà il tipo se non hai costruito la tua soluzione.

Problemi correlati