24

次のようなオブジェクトデータ型に値を割り当てました。

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[];

また、次のように返されます。 {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

次に、16 進値を byte[] から変換します。

string strHex = BitConverter.ToString(binaryData);

..のように返されますが**91-68-75-8B-7C-0F-FF-44-8E-9F-D0-66-94-9D-B3-4B**、GUID形式のような出力が必要です。どうすればこれを達成できますか?

4

5 に答える 5

73

Guidバイト配列を取るコンストラクタを使用するのはどうですか?

Guid guid = new Guid(binaryData);

(Guid.ToString()必要に応じて、 を使用してテキスト形式で取得できます。)

于 2012-06-02T12:05:51.040 に答える
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;
}
于 2014-03-28T17:00:26.263 に答える
0

System.DirectoryServices.DirectoryEntryクラスには、Guidこの目的のためのプロパティがあります。 を介して objectGUID 属性にアクセスする必要はありませんProperties

于 2013-02-14T19:45:38.677 に答える