C # Пользовательская Сериализация для Собственности - PullRequest
6 голосов
/ 03 августа 2011

Я сериализую класс с помощью XMLSerializer, но только для свойства "MyDynamicObject" я хочу переопределить и предоставить собственную реализацию.Как это можно сделать?

[Serializable]
public class Movie
{
  public string Title
  { get; set; }

  public int Rating
  { get; set; }

  public dynamic MyDynamicObject
  { get; set; }
}


public void SerializeToXML(Movie movie)
{
  XmlSerializer serializer = new XmlSerializer(typeof(Movie));
  TextWriter textWriter = new StreamWriter(@"C:\movie.xml");
  serializer.Serialize(textWriter, movie);
  textWriter.Close();
}

Ответы [ 3 ]

3 голосов
/ 03 августа 2011

Вы можете реализовать IXMLSerializable , который:

Предоставляет настраиваемое форматирование для сериализации и десериализации XML.

1 голос
/ 03 августа 2011

Вы захотите просмотреть список в Атрибутах, управляющих сериализацией XML и проверить наличие «свойств» в столбце «Применяется к».

Возможно, мы сможем вам больше помочь, еслиболее конкретно с вашими требованиями.

0 голосов
/ 03 августа 2011

Посмотрите на атрибут [OnSerializing()] на MSDN . Ниже приведен пример кода.

...