У меня есть объект для заполнения xml.Я думаю, что я мог бы использовать конструктор, который принимает этот XML для создания объекта.Но есть ли лучший шаблон дизайна для этого?Это к объекту, чтобы обрабатывать все разбор XML?
Спасибо!
Нет, вы не должны отправлять xml в конструктор, потому что вы связываете модель с логикой опустошения.Вы должны создать класс, который обрабатывает десерлизацию для вас и вернуть экземпляр.Почему это важно, может быть неясно.Но представьте, что в будущем у вас могут быть данные, поступающие из базы данных, вы не хотите передавать соединение с базой данных конструктору, не так ли?Вместо этого вы можете создать другой класс, который использует базы данных для создания экземпляра вашего класса.
Вот некоторые хорошие чтения:
http://en.wikipedia.org/wiki/Builder_pattern
http://en.wikipedia.org/wiki/Immutable_object
Самый простой подход - позволить XmlSerializer сделать это за вас.Просто украсьте его (при необходимости), чтобы он знал, как отобразить xml, и вызовите команду Deserialize.
если вы получаете XML в виде строки, которая требует специального анализа, вы можете, я думаю, создать менеджер / фабрику для создания вашего объекта:
var myObject = MyObjectCustomXmlSerializer.Deserialize(xmlString);