Frage

. Problem: Wenn eine Instanz einer Klasse-Caching und sofort bekommen sie von Cache wieder heraus, erhalte ich das Objekt zurück (es ist nicht null), aber alle seine Eigenschaften / Felder sind null oder Standardwerte

    _cacheHelper.PutInCache("testModuleControlInfoOne", mci);
    //mci has populated fields

    var mciFromCacheOne = _cacheHelper.GetFromCache("testModuleControlInfoOne");
    //mciFromCacheOne now has null or default fields

Also habe ich die Art und Weise vermuten, dass das Objekt strukturiert ist, ist das Problem und AppFabric ist serialisiert das Objekt nicht richtig aus irgendeinem Grund.

Wenn ich die folgende Serialisierung Methode jedoch verwenden, ich das Objekt zurück mit allen Eigenschaften / Felder, wie sie zur Serialisierung vor waren.

    public T SerializeThenDeserialize<T>(T o) where T : class
    {
            BinaryFormatter bf = new BinaryFormatter();

            using (MemoryStream ms = new MemoryStream())
            {
                bf.Serialize(ms, o);

                ms.Position = 0;

                return (T)bf.Deserialize(ms);
            }
    }

Wie kann ein Objekt serialisieren und deserialisieren richtig das binäre Formatierungsprogramm verwenden und nicht genau das Gleiche über Caching?

Hat jemand begegnet oder hat jemand irgendwelche Vorschläge oder Hinweise auf der Regel, was zu achten ist?

War es hilfreich?

Lösung

Ok habe es gefunden.

Das Objekt implementiert IXmlSerializable so AppFabric eingesetzt, dass statt der regulären Serialisierung.

es durch eine XmlSerializer Laufen (anstelle eines BinaryFormatter) gibt die gleichen Null-Felder wie ich erlebt.

Es scheint, die IXmlSerializable Implementierungsprobleme hat.

Andere Tipps

Ich glaube, wenn sie auf XML (mit IXmlSerializable) Serialisierung, die privaten Felder eines Objekts ignoriert werden, die sein kann, warum das Objekt nicht vollständig auf Abruf war.

Mit Binary Serialisierung wird das gesamte Objekt (einschließlich Verweise auf andere Objekte) sicherzustellen, sind enthalten.

Sie können bei IDataCacheObjectSerializer aussehen wollen

http://msdn.microsoft.com/en-us /library/windowsazure/hh552969.aspx

AppFabric Caching - Kann ich die Serialisierung angeben Stil für alle Objekte verwendet?

(ja, ich weiß, das ist Frage war auch bei Ihnen: -)

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