Frage

Nun, ich denke, der Titel für sich selbst erklärt.

Ich versuche, ein Konfigurationsobjekt Trog des Draht zu exportieren, aber es sieht ziemlich schwierig, die Klasse ist nicht serialisierbar und ... es ist verschlossen, so dass kein Erbe hier.

Wie jeder hat so etwas wie dies vor?

Viele Grüße

War es hilfreich?

Lösung 3

Nun, ich denke, dass er eine gute Lösung für dieses Problem gefunden. Er geht durch die Abschnitte Serialisierung statt das Objekt Konfiguration selbst. Also, alle die Abschnitte, um sicherzustellen, ich Serialized bekommen muss / deserialisiert zusammen ich sie alle in einem Configuration gewickelt haben. Ich macht den Job, und ermöglicht es mir, für den Export und Import von Einstellungen Trog einen WCF-Dienst, oder direkt auf Datei. Hier ist der Code, den ich verwendet:

Eine Konfigurationsabschnitt Basisklasse:

public abstract class ConfigurationSectionBase : ConfigurationSection
{
    public string Serialize()
    {
        return SerializeSection(null, Name, ConfigurationSaveMode.Minimal);
    }

    public void Deserialize(string configuration)
    {
        XmlReader reader = XmlReader.Create(new StringReader(configuration));
        if (!reader.ReadToFollowing(Name)) return;
        StringBuilder stringBuilder = new StringBuilder().Append(reader.ReadOuterXml());
        var stringReader = new StringReader(stringBuilder.ToString());
        reader = XmlReader.Create(stringReader);
        DeserializeSection(reader);
    }
}        

Hope hilft es jemand ...

Viele Grüße

Andere Tipps

Sie müssen die Bits auszureißen Sie wirklich brauchen, setzen Sie sie in eine separate Klasse, die serialisierbar ist und [DataContract] und [DataMember] Attribute für WCF-Serialisierung, und dann müssen Sie die Rückseite am anderen Ende tun.

WCF sendet nur Daten - serialisiert im XML-Format. Wenn Sie Ihre Daten nicht serialisiert werden kann, müssen Sie an die Arbeit um es selbst - es gibt kein Allheilmittel diese einen anderen Weg ...

zu lösen

Um den Schmerz zu lindern viele Eigenschaften von einer Klasse in eine andere zu kopieren, würde ich empfehlen eine externe Bibliothek wie AutoMapper , die eine Menge der langweilige, sich wiederholende Code von einem Objekt zum anderen zuweisen beseitigen kann.

ist Diese Klasse eher eine Passthrough den Zugriff auf die Konfigurationsdatei der Anwendung. Serialisieren sie nicht wirklich viel Sinn, aber was Sie wollen kann, ist tun, um die Werte aus ihm heraus und so sie in eine neue Klasse ziehen, dass Sie steuern. Dann alles, was Sie tun, ist sicher, dass neue Klasse ist serializable.

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