С# - преобразовать байт [] в строку в Windows 7 Phone

Привет, я пытаюсь получить идентификатор устройства телефона Windows 7, используя следующий код

 byte[] result = null;
 String id = null;
 object uniqueId;
 if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
     result = (byte[])uniqueId;

Проблема в том, что мне нужен этот результат в String. Кто-нибудь может сказать мне, как это сделать? С уважением


person Aqueel    schedule 29.10.2010    source источник


Ответы (2)


string myString = Convert.ToBase64String(result);

Эта функция доступна на платформе Windows Phone 7.

http://msdn.microsoft.com/en-us/library/dhx0d524(VS.95).aspx

И если вам снова понадобится массив байтов, просто попросите его вот так.

byte[] byteArray = Convert.FromBase64String(myString);

редактировать: Курт предоставил правильный способ преобразования обратно в массив байтов

person castis    schedule 29.10.2010
comment
К вашему сведению, чтобы вернуть исходные байты из строки Base 64, вам нужно использовать Convert.FromBase64String(), а не GetBytes(), как показано выше. - person Curt Nichols; 29.10.2010

System.Text.Encoding.UTF8.GetString(myBytes, 0, myBytes.Length);

Я не проверял, но полагаю, что этот метод доступен на Windows Phone.

person herzmeister    schedule 29.10.2010
comment
Когда я это делаю, результат в отладчике отображается в виде специальных символов. - person Aqueel; 29.10.2010
comment
Это результат, который я получаю после использования кода, который вы разместили. Nʝ���Z�����ʻj�l� - person Aqueel; 29.10.2010
comment
Где-то указано, что DeviceUniqueId должен быть удобочитаемым? - person herzmeister; 29.10.2010