Ich habe eine statische Dictionary in meiner Klasse, die 12000 Werte halten. Wenn ich versuche, meine Klasse zu speichern, muss ich das statische Wörterbuch aktualisieren, ich meine, ich muss einige Daten in Static Dicitionary auf der Serverseite hinzufügen. Das Problem besteht darin, dass nach dem Hinzufügen der Werte in Static Dicitionary immer noch 12000 Werte gespeichert werden, nicht 12001 (der letzte wird nicht hinzugefügt). Das statische Element kann nicht serialisiert und deserialisiert werden. Ich denke, da statische Elemente nicht Teil des Objekts sind, werden sie nicht seralisiert. Ich kann ISerializable Schnittstelle implementieren und das letzte Mitglied hinzufügen. aber ich denke, es ist keine gute Idee. Gibt es einen besseren Weg, dies zu tun? Ich arbeite an C# Windows-Anwendung.Wie serialisiert und deserialisiert man statische Member
Antwort
Welches Verhalten würden Sie erwarten, wenn Sie Daten aus mehreren verschiedenen Clients an den Server gesendet?
Angenommen, Client A hätte die Elemente X und Y hinzugefügt, und Client B hätte die Elemente Y und Z hinzugefügt. Ich nehme an, dass die statische Dictionazry mit den Elementen X, Y und Z enden soll, aber nicht mit zwei Ys.
Ich denke, dass Sie spezielle Code in Ihrer ISerializable-Implementierung benötigen, und ich denke, das ist durchaus legitim.
Ich hätte eine zusätzliche nicht-statische Member-Liste Variable so etwas wie „myDictionaryAdditions“ genannt, wann immer ich zu statischem Wörterbuch füge ich zu dieser Liste hinzufügen würde. Vermutlich wird dies korrekt auf den Server übertragen. Jetzt brauchen Sie nur einen Code im De-Serializer, um Nicht-Duplikate in das statische Wörterbuch zu übertragen.
Sie können serialisieren. Hier ist ein Code,
[Serializable ]
public class Numbers
{
public int no;
public static int no1;
}
class Test
{
static void Deser()
{
Numbers a;
FileStream fs = new FileStream("a1.txt", FileMode.Open);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bs = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
a = (Numbers)bs.Deserialize(fs);
Numbers.no1 = (int)bs.Deserialize(fs);
fs.Close();
Console.WriteLine(a.no + " " + Numbers.no1);
}
static void Ser()
{
Numbers a = new Numbers();
a.no = 100;
Numbers.no1 = 200;
FileStream fs = new FileStream("a1.txt", FileMode.Create);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bs = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bs.Serialize(fs, a);
bs.Serialize(fs, Numbers.no1);
fs.Close();
}
}
- 1. Wie man eine Karte serialisiert/deserialisiert go
- 2. WCF - Wie serialisiert und deserialisiert man in JSON?
- 3. Wie kann GenericXmlSecurityToken gespeichert/deserialisiert/serialisiert werden?
- 4. Node.js: Wie man eine React-Komponente serialisiert/deserialisiert?
- 5. Wie wird eine Dictionary-Variable serialisiert/deSerialisiert?
- 6. Json.Net einen Array serialisiert und deserialisiert als Liste
- 7. statische Member-Funktion und Thread-Sicherheit
- 8. Statische Variable vs. Member
- 9. Statische Member einer Instanzklasse
- 10. Wie wird das Ecto-Modell mit geladenen Assoziationen serialisiert/deserialisiert?
- 11. Statische Member-Objekt-Initialisierungsfehler
- 12. Objective c - statische Member und Konstanten
- 13. Wie man etwas inkompatible BinaryFormatter Daten deserialisiert?
- 14. Wie nicht-statische Member-Funktion in glutDisplayFunc
- 15. F # Statische Member Typ Einschränkungen
- 16. C++ Statische Const Member Variablenverwendung
- 17. definieren statische Member in C++
- 18. Wie verhindert man, dass Gson das erste Zeichen eines Feldes (Unterstrich) serialisiert/deserialisiert?
- 19. Statische Member Constraint für op_addition
- 20. Wie man einen C# WCF DataContract zu/von XML serialisiert/deserialisiert
- 21. Wie serialisiert/deserialisiert Pandas DataFrame in und von ProtoBuf/Gzip in einer RESTful Flask App?
- 22. Wie man ein Bündel serialisiert?
- 23. Warum statische Felder nicht serialisiert sind
- 24. Warum wird die statische Variable serialisiert?
- 25. Lua und serialisiert Schließungen
- 26. Wie serialisiert man Klassen, die nicht serialisiert wurden?
- 27. Lambda-Bereich für statische Member-Initialisierer
- 28. statische Member-Funktion innerhalb der Klassenvorlage Spezialisierung
- 29. Clang ++ Xcode 4.4 Nicht statische Member Initialisierung und Move Konstruktor
- 30. statische Member-Funktion make_shared von shared_ptr
Gibt es einen Grund, warum Sie diese Werte in einem statischen Wörterbuch speichern? Hast du das Singleton-Muster berücksichtigt? –
Ein 'Singleton' ist" nur "das Setzen von Daten statisch (= global) in ein bestimmtes Objekt, das für diesen Zweck erstellt wurde. Es wird nicht mit der Serialisierung helfen, denke ich. Gute Frage bleibt: "Gibt es einen Grund, warum Sie diese Werte in einem statischen Wörterbuch speichern?" wie es scheint, wirklich Instanzdaten zu sein, wenn Sie es serialisieren möchten. – peSHIr