Frage

Ich brauche einen Konfigurationsabschnitt zu erstellen, besteht darin, dass die Lage, Schlüssel-Wert-Paare in einer app.config-Datei zu speichern und die Schlüssel-Wert-Paaren kann Laufzeit hinzugefügt werden, unabhängig von ihrer Art. Es ist auch wichtig, dass der Wert seiner ursprünglichen Art hält. Ich brauche die folgende Schnittstelle

erweitern
public interface IPreferencesBackend
{
    bool TryGet<T>(string key, out T value);
    bool TrySet<T>(string key, T value); 
}

Zur Laufzeit kann ich so etwas sagen:

My.Foo.Data data = new My.Foo.Data("blabla");
Pref pref = new Preferences();
pref.TrySet("foo.data", data); 
pref.Save();

My.Foo.Data date = new My.Foo.Data();
pref.TryGet("foo.data", out data);

ich versuchte, mit System.Configuration.Configuration.AppSettings, aber das Problem damit, dass es die Schlüssel-Wert-Paare in einem String-Array zu speichern.

Was ich brauche, ist eine Implementierung von System.Configuration.ConfigurationSection zu haben, wo ich die, wie die individuelle Einstellung serialisiert steuern kann. Ich habe bemerkt, dass die von Visual Studio generierten Einstellungen Art, dies zu tun. Es wird mit Reflexion alle Einstelltasten zu erstellen. was ich brauche, ist diese Laufzeit und dynamisch zu tun.

[System.Configuration.UserScopedSettingAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.Configuration.DefaultSettingValueAttribute("2008-09-24")]
public global::System.DateTime DateTime {
   get {
        return ((global::System.DateTime)(this["DateTime"]));
       }
   set {
        this["DateTime"] = value;
       }
 }
War es hilfreich?

Lösung 2

fand ich zwei große Artikel auf codeproject.com die diese Themen im Detail sind zu erklären.

Entwirren Sie die Geheimnisse von .NET 2.0 Konfiguration http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx

Benutzereinstellungen Angewandt http://www.codeproject.com/KB/dotnet/user_settings.aspx?display=PrintAll&fid=1286606&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2647446&fr=26

Andere Tipps

Phil Haack hat einen großen Artikel auf Erstellen von benutzerdefinierten Konfigurationsabschnitten

Das ist alles, was Sie in einer ASCII-Textdatei erhalten - Strings. : -)

Sie können jedoch den „Wert“ Strings kodieren, um einen Typ-Parameter umfassen wie:

<key="myParam" value="type, value" />

Beispiel:

<key="payRate" value="money,85.79"/>

, dann haben Sie Ihre App tun die Umwandlung ...

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