Вопрос по XmlSerializer
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.09.06 08:56
Оценка:
Для BinaryFormatter есть IDeserializationCallback, который вызывается в конце десериализации. Есть ли нечто подобное для XmlSerializer?
Re: Вопрос по XmlSerializer
От: GlebZ Россия  
Дата: 24.09.06 10:11
Оценка:
Здравствуйте, FallenGameR, Вы писали:

FGR>Для BinaryFormatter есть IDeserializationCallback, который вызывается в конце десериализации. Есть ли нечто подобное для XmlSerializer?

А он разве для XML не работает?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[2]: Вопрос по XmlSerializer
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.09.06 10:42
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>А он разве для XML не работает?


Нет, не работает. Вот такой код:

XmlSerializer xmlSerializer = new XmlSerializer( typeof( CFGrammar ) );
result = xmlSerializer.Deserialize( fileStream );

не вызывает обработчик

void IDeserializationCallback.OnDeserialization( object sender )
Re[2]: Вопрос по XmlSerializer
От: Mika Soukhov Stock#
Дата: 24.09.06 10:47
Оценка: 6 (1)
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, FallenGameR, Вы писали:


FGR>>Для BinaryFormatter есть IDeserializationCallback, который вызывается в конце десериализации. Есть ли нечто подобное для XmlSerializer?


Подобного нет. Xml сериализация штука не гибкая, так что придется все самому делать.

class XmlSerializer<T>
{
  public T Deserialize(stream)
  {
    T obj = (T)new XmlSerializer(typeof(T)).Deserialize(stream);
    if (obj is IDeserializationCallback)
    // ну дальше все понятно
  }
}


GZ>А он разве для XML не работает?


Работает, если использовать SoapFormatter.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.