Я хотел бы начать писать Объем для Ubuntu.
Какие языки программирования доступны и что я должен выбрать?
Когда-то давно объемы имели привязка Vala и Python. Python был рекомендуемым языком. Это на самом деле все еще запрашивает рабочий стол и Единицу 7. Однако, в то время как это все еще будет вокруг некоторое время (т.е. это все еще поставляется в Ubuntu 14.04 LTS), мы постепенно сокращаем Единицу 7 в пользу Единицы 8 в новом мире, где у нас будет единственная кодовая база Единицы, которая натыкается на устройства и форм-факторы (например, телефон и рабочий стол).
Таким образом в этой точке, рекомендация для новых проектов состоит в том, чтобы записать объемы для Единицы 8. В Единице 8 поддерживаемым языком является C++. Все текущие учебные руководства и документы API основаны на C++.
Причины движения для C++ являются двукратными: производительность и совместимость со спокойными API, доступными всюду по платформе.
Мы действительно распознаем значение поддержки другой привязки. В то время как, Все еще идут не на одном уровне с привязкой C++, можно также уже записать объемы в Движении (см. предварительную документацию), и далее в будущем мы также рассматриваем добавляющий JavaScript.
Я понял это. Прочитайте документацию MSDN, и она говорит для использования.Load вместо LoadXml при чтении из строк. Узнанный это работает 100% времени. Достаточно странно использующий StringReader вызывает проблемы. Я думаю, что главная причина состоит в том, что это - закодированная строка Unicode, и это могло вызвать проблемы, потому что StringReader является UTF-8 только.
MemoryStream stream = new MemoryStream();
byte[] data = body.PayloadEncoding.GetBytes(body.Payload);
stream.Write(data, 0, data.Length);
stream.Seek(0, SeekOrigin.Begin);
XmlTextReader reader = new XmlTextReader(stream);
// MSDN reccomends we use Load instead of LoadXml when using in memory XML payloads
bodyDoc.Load(reader);