Frage

Ich bin mit der Settings-Klasse in meinem .NET-Projekt. Ich stelle fest, in dem Editor, der nur bestimmte Typen sind als die für die einzelnen Eigenschaften in der Settings-Klasse verwendet werden. Was passiert, wenn ich eine Eigenschaft, die war eine Aufzählung von meinem Code oder eine generische Sammlung zum Beispiel haben wollte? Wie würde ich das umsetzen?

Ich vermute, dass ich es in einer separaten Datei mit dem Teil-Klasse Mechanismus tun kann (da Einstellungen bereits als Teilklasse definiert ist), aber ich mag sehen, ob jemand mit dem übereinstimmt und ob es eine Möglichkeit sein kann, tun sie es im Editor.

War es hilfreich?

Lösung

Erstellen Sie eine neue „Einstellungen“ Datei einen komplexen / benutzerdefinierten Typen der Wahl hinzuzufügen. Hier ist ein How-To für eine Enum.

Schritt 1: . Erstellen Sie eine Einstellungsdatei

alt text

Schritt 2 . Suchen Sie nach Typ

alt text

Schritt 3: . Typ auswählen (Namespace.TypeName)

alt text

Schritt 4: . Ta da - Fertig

alt text

Andere Tipps

Um eine benutzerdefinierte Klasse zu erhalten in dieser Liste zu zeigen, stellen Sie sicher, dass es einen Standardkonstruktor hat als eine die es Optionen zu konstruieren. Ich habe gelernt, auf die harte Art und Weise

Um Jeffrey Kommentar / Frage zu beantworten, ob generische Listen sind möglich in einer Einstellungsdatei, die Antwort ja ist. Sie müssen nur die Einstellungen manuell XML-Datei bearbeiten. Zum Beispiel, wenn ich die folgende Klasse haben:

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

ich eine Liste dieser durch einen Rechtsklick auf meine Einstellungsdatei erstellen und wählen Sie Öffnen mit ...

Wählen Sie dann XML / Text-Editor, und stellen Sie den „Typ“ Wert auf den vollständig qualifizierten Klassennamen, das heißt:

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

Die vollständigen Einstellungen xml würde wie folgt aussehen:

<?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>

Wenn Sie dies tun, sollten Sie eine ordnungsgemäß konfigurierten Liste der benutzerdefinierten Einstellungen haben Objekt, das Sie erstellt.

Doing es in einer separaten Datei als Teil einer partiellen Klasse ist völlig akzeptabel.

Wenn Sie komplexe Objekte durch Konfigurationsdateien füllen zu können, würde ich vorschlagen, eine Dependency Injection Framework S.A. Spring.Net.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top