/ / Serialisieren Sie ein Objekt mit der HashTable-Eigenschaft und speichern Sie es in CouchBase - c #, couchbase

Serialisieren Sie ein Objekt mit der HashTable-Eigenschaft und speichern Sie es in CouchBase - c #, couchbase

Unser Team hat gewählt Couchbase als Cache für unsere Anwendung. Was wir in diesem Cache speichern, sind Objekte, die so aussehen

public class CatalogEntity
{
public int Id { get; set; }
public string Name { get; set; }

// this property gives us trouble
public Hashtable Attributes { get; set;}
}

Nach dem Abrufen eines Objekts aus dem CouchBase-Cache habe ich in unserem Code festgestellt, dass die Eigenschaften der primären Typen (Id und Name) ordnungsgemäß deserialisiert sind, aber die Attributes von Hashtable Typ wird nicht deserialisiert und bleibt als JSON. Zum Beispiel, wenn ich sowas habe

var entity = new CatalogEntity();
entity.Attributes["foo"] = new Foo();

Das Objekt aus dem Cache wird haben Attributes["foo"] Eigenschaft als JSON-Darstellung der Foo Klasse.

Ich frage mich, wie man das hat Hashtable Typisch serialisieren / deserialisiert? Soll ich das Objekt in eine Binärdatei serialisieren und stattdessen einen binären Stream in der CouchBase speichern?

Antworten:

0 für die Antwort № 1

Gibt es einen Grund, den Sie verwenden müssen? Hashtable? Können Sie zum Beispiel eine Dictionary<string,string> stattdessen?

Ich denke, der Grund für das, was Sie sehen, ist der beste Versuch von Json.NET, eine Hashtabelle zu serialisieren (siehe auch diese Frage zu StackOverflow: Hashtable mit Json.Net serialisieren).