|
Конструктор XmlSerializer не получается вызвать для произвольного объекта
|
|||
---|---|---|---|
#18+
Хочу сериализовать произвольный obj1. Он может быть любого класса, помеченного как [Serializable] Код: c# 1. 2. 3. 4. 5.
Можно ли как то, например зная имя класса объекта obj1 в переменной Код: c# 1.
вызвать конструктор XmlSerializer, используя эту переменную? ну или иным способом как то... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 19:03 |
|
Конструктор XmlSerializer не получается вызвать для произвольного объекта
|
|||
---|---|---|---|
#18+
AlexV1, Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 19:31 |
|
Конструктор XmlSerializer не получается вызвать для произвольного объекта
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, спасибо. Теперь выдало на этой строке вот что NotSupportedException: Невозможно сериализовать член Common.ConfData.typeRec типа System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Common.TypeRec, common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], т. к. он содержит реализацию IDictionary. что можно сделать с членом Dictionary, чтоб сериализовался? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 19:41 |
|
Конструктор XmlSerializer не получается вызвать для произвольного объекта
|
|||
---|---|---|---|
#18+
AlexV1что можно сделать с членом Dictionary, чтоб сериализовался? Ничего - у XmlSerializer'а достаточно жесткие требования к начинке класса, и без доп. телодвижений здесь ничего не сделать. Например, вот таких . Возможно, придется сделать часть логики именно для сериализации, а часть контракта класса пометить атрибутом XmlIgnore. Ну, либо наколхозить свою сериализацию в XML - часто ручная потеговая-поатрибутная запись в выходной stream бывает оптимальнее и гибче, чем стандартная xml-сериализация. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 21:35 |
|
Конструктор XmlSerializer не получается вызвать для произвольного объекта
|
|||
---|---|---|---|
#18+
я даже больше скажу, для каждого типа, XmlSerializer создает в памяти отдельную сборку\программу и загружает её в память, после чего с помощью этого кода сериализует\десериализует объекты. То есть, сам сериализатор универсальный, но он генерирует очень узко специализированный код для заданного типа ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 21:44 |
|
|
start [/forum/topic.php?fid=20&msg=39786973&tid=1399046]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 269ms |
0 / 0 |