J'ai assigné une valeur au type de données d'objet comme,
object objData =dc.GetDirectoryEntry().Properties["objectGUID"].Value;
cet objet renvoie la valeur comme {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
Puis je jette cet objet en octet [], comme
byte[] binaryData = objData as byte[];
Il retournera aussi comme, {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
Puis je convertis les valeurs hexadécimales d'octet [] comme,
string strHex = BitConverter.ToString(binaryData);
Ce sera le retour comme **91-68-75-8B-7C-0F-FF-44-8E-9F-D0-66-94-9D-B3-4B**
.. Mais j'ai besoin de la sortie comme GUID format, comment puis-je y parvenir?
Pourquoi ne pas utiliser le constructeur Guid
qui prend un tableau d'octets ?
Guid guid = new Guid(binaryData);
(Vous pouvez ensuite utiliser Guid.ToString()
pour l’obtenir sous forme de texte si vous en avez besoin.)
byte[] binaryData = objData as byte[];
string strHex = BitConverter.ToString(binaryData);
Guid id = new Guid(strHex.Replace("-", ""))
Le long formulaire serait ( entrez la description du lien ici ):
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;
}
La classe System.DirectoryServices.DirectoryEntry
a la propriété Guid
à cette fin - il n'est pas nécessaire d'accéder à l'attribut objectGUID via Properties
.