Отдельный байт (uint8
) не имеет порядка следования байтов, порядок следования байтов является свойством последовательности байтов.
В соответствии со спецификацией, которую вы связали, ChunkSize занимает место для 4 байтов - сначала младший байт (младший порядок). Если ваше значение составляет всего один байт (не больше 255), вы просто записали бы байт со смещением 4, как и раньше. Если бы 4 байта были в порядке с прямым порядком байтов, вы должны записать свой байт со смещением 7.
Однако я бы порекомендовал просто использовать setUint32
:
dataView.setUint32(0, 0x52494646, false); // RIFF
dataView.setUint32(4, 172 , true);
dataView.setUint32(8, 0x57415645, false) // WAVE
XNode имеет функцию DeepEquals, которая должна помочь.
http://msdn.microsoft. com / en-us / library / system.xml.linq.xnode.deepequals.aspx
Обновление:
Похоже, что функция DeepEquals не всегда работает правильно. Возможно, вам лучше реализовать собственную процедуру сравнения.
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=400469
Попробуйте утилиту Microsoft XML Diff and patch здесь или Google "Xml Diff"
В дополнение к "Адам Рут" я прочитал ссылку на Microsoft, и эта запись в блоге очень полезна ..
Эрик Уайт: http://blogs.msdn.com/b/ericwhite/archive/2009/01/28/equality-semantics-of-linq-to-xml-trees.aspx