Domanda

Sto usando la classe Settings nel mio progetto .NET. Noto nell'editor che solo alcuni tipi sono disponibili per essere usati come tipi per le singole proprietà nella classe Settings. E se volessi avere una proprietà che era un'enumerazione dal mio codice o una collezione generica per esempio? Come lo implementerei?

Suppongo di poterlo fare in un file separato usando il meccanismo di classe parziale (poiché Impostazioni è già definito come una classe parziale) ma voglio vedere se qualcuno è d'accordo con questo e se potrebbe esserci un modo per fallo all'interno dell'editor.

È stato utile?

Soluzione

Crea un nuovo " Impostazioni " file per aggiungere un tipo di scelta complesso / definito dall'utente. Ecco un how-to per un Enum.

Passaggio 1 . Crea un file Impostazioni

alt text

Passaggio 2 . Cerca il tipo

alt text

Passaggio 3 . Seleziona il tipo (Namespace.TypeName)

alt text

Passaggio 4 . Ta da - Fatto

alt text

Altri suggerimenti

Per visualizzare una classe personalizzata in quell'elenco, assicurati che abbia un costruttore predefinito come una delle sue opzioni di costruzione. L'ho imparato a mie spese

Per rispondere al commento / domanda di Jeffrey sulla possibilità di elenchi generici in un file di impostazioni, la risposta è sì. Devi solo modificare il file xml Impostazioni manualmente. Ad esempio, se ho la seguente classe:

public class UrlAlias
{
    public string Name { get; set; }
    public string BaseUrl { get; set; }
}

Posso creare un elenco di questi facendo clic con il tasto destro sul mio file delle impostazioni e selezionare Apri con ...

Quindi scegli XML / Editor di testo e imposta il " Tipo " valore al nome completo della classe, ovvero:

Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]"

Le impostazioni complete xml dovrebbero apparire come:

<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings">
 <Profiles />
  <Settings>
    <Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User">
      <Value Profile="(Default)"></Value>
    </Setting>
  </Settings>
</SettingsFile>

Una volta fatto questo, dovresti avere un elenco correttamente configurato dell'oggetto delle impostazioni personalizzate che hai creato.

Farlo in un file separato come parte di una classe parziale è totalmente accettabile.

Se vuoi essere in grado di popolare oggetti complessi attraverso i file di configurazione, ti suggerirei di usare alcuni Dependency Injection Framework s.a. Spring.Net.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top