У нас есть XML, сгенерированный из внешней программы, которую нужно прочитать в наше приложение C #.
Я знаю, что мы могли бы использовать классы C # с тегом [Serializable]
для загрузки объектов, но проблема в том, что у нас уже есть объект, который на самом деле более разделен на ОО, чем Xml. Мы не хотим иметь 2 набора объектов.
Хотя я могу открыть файл с помощью LinqToXml и заполнить наши объекты. Можно ли так делать или лучше всего использовать тег [Serializable]
с XmlElementAttribute
и другие теги в нашей модели OO? (Если последнее является хорошим решением, как я могу поместить атрибут в объект внутри моего объекта или работать с наследованием?).
Редактировать: Пример
Допустим, у меня есть:
public class Movie {
public string Name;
public Actor LeadActor;
}
public class Actor {
public string Name;
public DateTime DOB;
}
И я хочу сериализовать фильм следующим образом:
<Movie>
<Name>Casino Royale</Name>
<LeadActor>Daniel Craig</LeadActor>
</Movie>
Единственный способ заставить его работать, это модифицировать Movie, чтобы иметь свойство LeadActor, которое объединит свойство Actor и создаст оба свойства Actor с атрибутом [XmlIgnore]. Но что, если я не хочу изменять эти бизнес-объекты?