Вопрос по c# – Преобразовать byte [] или объект в GUID

17

Я присвоил некоторое значение типу данных объекта, например,

object objData =dc.GetDirectoryEntry().Properties["objectGUID"].Value;

этот объект возвращает значение как{byte[16]} [0]: 145 [1]: 104 [2]: 117 [3]: 139 [4]: 124 [5]: 15 [6]: 255 [7]: 68 [8]: 142 [9]: 159 [10]: 208 [11]: 102 [12]: 148 [13]: 157 [14]: 179 [15]: 75

Затем я приведу этот объект к byte [], как

byte[] binaryData = objData as byte[];

It will also return like, {byte[16]} [0]: 145 [1]: 104 [2]: 117 [3]: 139 [4]: 124 [5]: 15 [6]: 255 [7]: 68 [8]: 142 [9]: 159 [10]: 208 [11]: 102 [12]: 148 [13]: 157 [14]: 179 [15]: 75

Затем я конвертирую шестнадцатеричные значения из byte [] как,

string strHex = BitConverter.ToString(binaryData);

Будет возвращаться как**91-68-75-8B-7C-0F-FF-44-8E-9F-D0-66-94-9D-B3-4B**.. But i need the output like GUID format, How can i achieve this?

Ваш Ответ

4   ответа
47

Как насчет использованияGuid constructor which takes a byte array?

Guid guid = new Guid(binaryData);

(Вы можете использоватьGuid.ToString() чтобы получить его в текстовом виде, если вам нужно.)

@Rab: Я не совсем уверен, о чем ты спрашиваешь.
@ManikandanSethuraju: Вы должны просто разыграть, например,new Guid((byte[]) objData)
Спасибо за ваш ответ .. он работает ... Есть ли способ конвертировать GUID из типа данных объекта? Manikandan Sethuraju
2

byte[] binaryData = objData as byte[];
string strHex = BitConverter.ToString(binaryData);
Guid id = new Guid(strHex.Replace("-", ""))
2

Длинная форма будет (введите описание ссылки здесь):

public static string ConvertGuidToOctectString(string objectGuid)
{
    System.Guid guid = new Guid(objectGuid);
    byte[] byteGuid = guid.ToByteArray();
    string queryGuid = "";
    foreach (byte b in byteGuid)
    {
        queryGuid += @"\" + b.ToString("x2");
    }
    return queryGuid;
}
В настоящее время я использую именно это для & # xB4; LDAP & # xB4; запрос. Благодарю. Но нет ли "официального" .NET Framework метод, чтобы получить представление октета?
0

System.DirectoryServices.DirectoryEntry класс имеет свойствоGuid для этого - нет необходимости обращаться к атрибуту objectGUID черезProperties.

Похожие вопросы