|
Проблема с десериализацией
|
|||
---|---|---|---|
#18+
Доброго времени суток. Написал простой класс настроек: Код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110.
На работе всё работало успешно (как сериализация, так и десериализация). Правда на работе я компилировал под .net 4.0, а дома компилирую под .net 3.5. Компиляция так же проходит успешно. Однако во время работы получаю проблему: сериализация проходит без ошибок, но десериализацию выполнить не удаётся: ОшибкаParse Error, no assembly associated with Xml key a1: http://schemas.microsoft.com/clr/nsassem/HostMgd.Samples/ImportCoords_v1,%2 0Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull Preferences В чём проблема? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2013, 22:29 |
|
Проблема с десериализацией
|
|||
---|---|---|---|
#18+
Compositum, вроде такая проблема может возникнуть если сборка с сериализуемым типом была подписана, уже после создания файла с сериализованными данными или если нет ссылки на сборку с типом. Второе мы похоже можем исключить т.к. приложение единое, а вот в первом случае просто сотри файл с сериализованными данными и повтори процесс по новой. P.S. Почему ты используешь именно SOAP, а не XML сериализацию? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 00:37 |
|
Проблема с десериализацией
|
|||
---|---|---|---|
#18+
bazile, Я не подписывал сборку. SOAP заюзал, просто потому, что он так же имеет XML формат. :) Переделал сериализацию\десериализацию так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Однако в процессе работы программы получаю такое сообщение об ошибке: Вижу, что создаётся XML файл нулевого размера... Что неправильно в коде сериализации\десериализации? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 09:22 |
|
Проблема с десериализацией
|
|||
---|---|---|---|
#18+
Извиняюсь, с утра не проснулся. С утра правил код банальным копипастом, и только сейчас обратил внимание, что у меня TextReader и TextWriter прописаны в блоке Stream. Исправил, заработало: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Однако мне всё же интересно, в чём была проблема при использовании SOAP сериализации (первый пост топика)? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 10:19 |
|
Проблема с десериализацией
|
|||
---|---|---|---|
#18+
CompositumОднако мне всё же интересно, в чём была проблема при использовании SOAP сериализации (первый пост топика)? Непонятно. У меня не получается вопроизвести проблему. Вспоминай чем еще отличаются приложения кроме версии .NET. Может ты менял версию приложения? Разносил код по разным сборкам? CompositumС утра правил код банальным копипастом, и только сейчас обратил внимание, что у меня TextReader и TextWriter прописаны в блоке Stream. Исправил, заработало: Проблема не во вложенности, а попытке повторного открытия того же файла. Вместо Код: sql 1. 2. 3.
нужно было написать Код: sql 1. 2. 3.
И пара мелких замечаний: 1. В каждом примере в блоке using ты вызываешь Close(). В этом нет никакой необходимости т.к. using это сделает автоматически. 2. Рекомендую переименовать метод Open в Load т.к. название Open предполагает действие по открытию чего-либо с последующим закрытием. Класс Preferеnces в эту схему не укладывается. Есть пары глаголов которые рекомендуется использовать совместно: Open - Close, Save - Load, Insert - Delete, Add - Remove, Show - Hide и т.д. и т.п. Смысл этой рекомендации в упрощении кода т.к. видя метод Add программист может предполагать наличие парного метода Remove. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:35 |
|
|
start [/forum/topic.php?fid=20&msg=38352424&tid=1404266]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 462ms |
0 / 0 |