using System;
using System.Runtime.InteropServices;
// Guid for the interface IMyInterface.
[Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")]
interface IMyInterface
{
void MyMethod();
}
// Guid for the coclass MyTestClass.
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
publicclass MyTestClass : 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.publicvoidMyMethod() {}
publicstaticvoidMain( string []args )
{
// 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.
Attribute IMyInterfaceAttribute = Attribute.GetCustomAttribute( typeof( IMyInterface ), typeof( GuidAttribute ) );
// The Value property of GuidAttribute returns a string.
System.Console.WriteLine( "IMyInterface Attribute: " + ((GuidAttribute)IMyInterfaceAttribute).Value );
// Using the string to create a guid.
Guid myGuid1 = new Guid( ((GuidAttribute)IMyInterfaceAttribute).Value );
// Using a byte array to create a guid.
Guid myGuid2 = new Guid ( myGuid1.ToByteArray() );
// Equals is overridden and so value comparison is done though references are different.if ( myGuid1.Equals( myGuid2 ) )
System.Console.WriteLine( "myGuid1 equals myGuid2" );
else
System.Console.WriteLine( "myGuid1 not equals myGuid2" );
// Equality operator can also be used to determine if two guids have same value.if ( myGuid1 == myGuid2 )
System.Console.WriteLine( "myGuid1 == myGuid2" );
else
System.Console.WriteLine( "myGuid1 != myGuid2" );
// CompareTo returns 0 if the guids have same value.if ( myGuid1.CompareTo( myGuid2 ) == 0 )
System.Console.WriteLine( "myGuid1 compares to myGuid2" );
else
System.Console.WriteLine( "myGuid1 does not compare to myGuid2" );
System.Console.ReadLine();
//Output.//IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4//myGuid1 equals myGuid2//myGuid1 == myGuid2//myGuid1 compares to myGuid2
}
}
常用方法
Guid.NewGuid创建一个新的 guid,也叫uuid
// This code example demonstrates the Guid.NewGuid() method.using System;
class Sample
{
publicstaticvoidMain()
{
Guid g;
// Create and display the value of two GUIDs.
g = Guid.NewGuid();
Console.WriteLine(g);
Console.WriteLine(Guid.NewGuid());
}
}
/*
This code example produces the following results:
0f8fad5b-d9cb-469f-a165-70867728950e
7c9e6679-7425-40de-944b-e07fc1f90ae7
*/