2011-01-27 11 views

Respuesta

5

ver http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.generateguidfortype.aspx

... GenerateGuidForType proporciona la misma funcionalidad que la propiedad Type.GUID.

De acuerdo con la documentación, son iguales. Sin embargo, Marshal.GenerateGuidForType funciona solo para objetos RuntimeType, mientras que Type.GUID también se proporciona para otras implementaciones de Type.

ej .:

 

using System; 
using System.CodeDom; 
using System.Runtime.InteropServices; 
using System.Workflow.ComponentModel.Compiler; 

namespace Samples 
{ 
    class Program 
    { 
     static CodeCompileUnit BuildHelloWorldGraph() 
     { 
      var compileUnit = new CodeCompileUnit(); 
      var samples = new CodeNamespace("Samples"); 
      compileUnit.Namespaces.Add(samples); 

      var class1 = new CodeTypeDeclaration("Class1"); 
      samples.Types.Add(class1); 

      return compileUnit; 
     } 


     static void Main(string[] args) 
     { 
      var unit = BuildHelloWorldGraph(); 
      var typeProvider = new TypeProvider(null); 
      typeProvider.AddCodeCompileUnit(unit); 
      var t = typeProvider.GetType("Samples.Class1"); 
      Console.WriteLine(t.GUID); // prints GUID for design time type instance. 
      Console.WriteLine(Marshal.GenerateGuidForType(t)); // throws ArgumentException. 
     } 
    } 
} 
 
2

Según MSDN, "GenerateGuidForType proporciona la misma funcionalidad que la propiedad Type.GUID". Debe ser seguro usar el que más le convenga.

Cuestiones relacionadas