Я бы предпочел десериализовать XML за один раз, как показано в приведенном ниже коде.
1. Генерация классов, необходимых для хранения десериализованного XML
, сначала для генерации XSD из xml -
D:\temp>xsd test.xml
, а затем для генерации классов c # из xsd -
D:\temp>xsd test.xsd /classes
[ 1111] 2. Десериализация в объекты C #
MySerializableClass myObject;
// Construct an instance of the XmlSerializer with the type
// of object that is being deserialized.
XmlSerializer mySerializer = new XmlSerializer(typeof(MySerializableClass));
// To read the file, create a FileStream.
FileStream myFileStream = new FileStream("myFileName.xml", FileMode.Open);
// Call the Deserialize method and cast to the object type.
myObject = (MySerializableClass)mySerializer.Deserialize(myFileStream)
3. Все, что вам нужно, извлеките, используя вашу собственную логику
Надеюсь, это поможет.
Посмотрите раздел в ранее упомянутом Книга Подверсии, обсудив "ответвления поставщика". Это обсуждает, как иметь дело с внешним подпроектом, таким образом, можно и объединиться в изменениях, когда внешний проект обновляется и слияние в собственных локальных модификациях.
Этот подход должен работать хорошо при обработке общедоступной версии проекта (размещенный на Google Code) как extenal зависимость в коде companie.
В Подверсии 'разветвление' 'переходит', и 'Соединяется, изменения' 'объединяется'.
Я не думаю, что можно уйти, не читая соответствующие разделы книги Подверсии справедливо тщательно. Это очень ясно записало и легкий понять, после того как Вы передаете время ему.
Если Работа не является согласным выпуском те модификации назад к исходному проекту, я запустил бы совершенно новый проект SVN там (Проект B). Затем в то время как Вы прогрессируете до своего следующего выпуска BSD лицензируемый проект (Проект A), можно сделать массивы изменений из последнего выпуска и затем применить их назад к Проекту B.
Это может походить на разупорядочение разносторонне развитой личности, но необходимо действовать как два различных объекта, зависящие, где Вы (Word или Домой).
ЭКВИВАЛЕНТНОСТЬ, с другой стороны, Работает, готово выпустить те модификации назад к исходному проекту, затем Ваш более оптимальный вариант состоит в том, чтобы сделать ответвление и объединить Ваши изменения в Проекте A в Проект B (периодически).