Creazione GUID








Imports System
Imports System.Runtime.InteropServices

' Guid for the interface IMyInterface.

<Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")> _
Interface IMyInterface
Sub MyMethod()
End Interface

' Guid for the coclass MyTestClass.

<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")> _
Public Class MyTestClass
Implements IMyInterface

' Run regasm on this assembly to create .reg and .tlb files.

' Reg file can be used to register this coclass in the registry.

' Tlb file will be used to do interop.

Public Sub MyMethod() Implements IMyInterface.MyMethod
End Sub

Public Shared Sub Main()
' Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.

' How to specify the attribute on interface/coclass.

' Retrieve the GuidAttribute from an interface/coclass.

' Value property on GuidAttribute class.

' Example addresses the following in System.Guid.

' Constructor Guid(string).

' Constructor Guid(ByteArray).

' Equals.

' Operator ==.

' CompareTo.

Dim IMyInterfaceAttribute As Attribute = Attribute.GetCustomAttribute(GetType(IMyInterface), GetType(GuidAttribute))

' The Value property of GuidAttribute returns a string.

System.Console.WriteLine("IMyInterface Attribute: " + CType(IMyInterfaceAttribute, GuidAttribute).Value)

' Using the string to create a guid.

Dim myGuid1 As New Guid(CType(IMyInterfaceAttribute, GuidAttribute).Value)
' Using a byte array to create a guid.

Dim myGuid2 As New Guid(myGuid1.ToByteArray())

' Equals is overridden and so value comparison is done though references are different.

If myGuid1.Equals(myGuid2) Then
System.Console.WriteLine("myGuid1 equals myGuid2")
Else
System.Console.WriteLine("myGuid1 not equals myGuid2")
End If
' Equality operator can also be used to determine if two guids have same value.

If myGuid1.ToString() = myGuid2.ToString() Then
System.Console.WriteLine("myGuid1 == myGuid2")
Else
System.Console.WriteLine("myGuid1 != myGuid2")
End If
' CompareTo returns 0 if the guids have same value.

If myGuid1.CompareTo(myGuid2) = 0 Then
System.Console.WriteLine("myGuid1 compares to myGuid2")
Else
System.Console.WriteLine("myGuid1 does not compare to myGuid2")
End If

System.Console.ReadLine()

'Output:

'IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4

'myGuid1 equals myGuid2

'myGuid1 == myGuid2

'myGuid1 compares to myGuid2

End Sub
End Class












( creazioneguid.html )- by Paolo Puglisi - Modifica del 17/12/2023