У меня есть статический dicitionary в моем классе, который содержит 12000 значений. когда я пытаюсь сохранить свой класс, мне нужно обновить статический словарь, я имею в виду, что мне нужно добавить некоторые данные в Static Dicitionary на стороне сервера. проблема заключается в том, что после добавления значений в Static Dicitionary он по-прежнему сохраняет 12000 значений, а не 12001 (последний не добавляется). он не может сериализовать и десериализовать статический член. я думаю, поскольку статический член не является частью объекта, поэтому он не становится серализованным. Я могу реализовать интерфейс ISerializable и добавить последний элемент. но я думаю, что это не очень хорошая идея. есть лучший способ сделать tht. Я работаю над приложением windows C#.как сериализовать и десериализовать статический член
ответ
Какое поведение вы ожидали бы, если бы вы отправили данные с нескольких разных клиентов на сервер?
Предположим, что клиент A добавил элементы X и Y, а клиент B добавил элементы Y и Z. Я предполагаю, что вы хотите, чтобы статическая диктатура закончила с элементами X, Y и Z, но не с двумя Ys.
Думаю, вам понадобится специальный код в вашей реализации ISERializable, и я думаю, что это вполне законно.
У меня была бы дополнительная нестатическая переменная списка членов, называемая чем-то вроде «myDictionaryAdditions», когда я добавляю к статическому словарю, который я бы добавил в этот список. Предположительно, это будет правильно переведено на сервер. Теперь вам просто нужен код в де-сериализаторе для переноса не-дуплексов в статический словарь.
Вы можете сериализовать. Вот код,
[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. Как сериализовать и десериализовать статический объект ссылки?
- 2. Сериализовать и десериализовать BST
- 3. Как сериализовать и десериализовать форму?
- 4. F #: статический и статический член
- 5. Golang сериализовать и десериализовать назад
- 6. Статический член и наследование
- 7. Как сериализовать и десериализовать объект arrayList?
- 8. WCF - Как сериализовать и десериализовать в JSON?
- 9. Как сериализовать и десериализовать объекты Javascript?
- 10. Как правильно сериализовать и десериализовать CSV?
- 11. Как сериализовать эту программу и десериализовать ее
- 12. WCF - Как сериализовать и десериализовать в ISO8583?
- 13. Как сериализовать и десериализовать открытый файл?
- 14. Как сериализовать и десериализовать объект CipherInputStream
- 15. Как сериализовать и десериализовать в android?
- 16. Как правильно сериализовать и десериализовать значения словаря?
- 17. Как сериализовать/десериализовать класс C#?
- 18. Как можно сериализовать/десериализовать неизменность?
- 19. Как сериализовать/десериализовать хэш-карту?
- 20. Как сериализовать/десериализовать переменную словаря?
- 21. Как сериализовать статический класс?
- 22. cpp- статический член и функция
- 23. сериализовать и десериализовать enum с помощью Gson
- 24. PHP print_r и статический член
- 25. Что значит сериализовать/десериализовать сеанс?
- 26. Как инициализировать статический объект-член?
- 27. Как определить статический член const?
- 28. Node.js: Как сериализовать/десериализовать компонент React?
- 29. Как полностью сериализовать/десериализовать объект RSAParameters
- 30. Как сериализовать - десериализовать параметр hash-объекта params?
Есть ли причина, по которой вы храните эти значения в статическом словаре? Вы считали шаблон Singleton? –
«Синглтон» «просто» помещает данные static (= global) в конкретный объект, созданный для этой единственной цели. Думаю, это не поможет с сериализацией. Хороший вопрос остается: «Есть ли причина, по которой вы сохраняете эти значения в статическом словаре?» поскольку, по-видимому, это действительно данные экземпляра, если вы хотите сериализовать его. – peSHIr