Type.GetTypeFromCLSID Método

Definición

Obtiene el tipo asociado al identificador de clase especificado (CLSID).Gets the type associated with the specified class identifier (CLSID).

Sobrecargas

GetTypeFromCLSID(Guid, String, Boolean)

Obtiene el tipo asociado al identificador de clase (CLSID) indicado desde el servidor especificado y debe indicarse si se producirá una excepción en caso de que se produzca un error al cargar el tipo.Gets the type associated with the specified class identifier (CLSID) from the specified server, specifying whether to throw an exception if an error occurs while loading the type.

GetTypeFromCLSID(Guid, String)

Obtiene el tipo asociado al identificador de clase (CLSID) especificado desde el servidor especificado.Gets the type associated with the specified class identifier (CLSID) from the specified server.

GetTypeFromCLSID(Guid)

Obtiene el tipo asociado al identificador de clase especificado (CLSID).Gets the type associated with the specified class identifier (CLSID).

GetTypeFromCLSID(Guid, Boolean)

Obtiene el tipo asociado al identificador de clase (CLSID) especificado, que debe indicar si se producirá una excepción en caso de que se produzca un error al cargar el tipo.Gets the type associated with the specified class identifier (CLSID), specifying whether to throw an exception if an error occurs while loading the type.

GetTypeFromCLSID(Guid, String, Boolean)

Obtiene el tipo asociado al identificador de clase (CLSID) indicado desde el servidor especificado y debe indicarse si se producirá una excepción en caso de que se produzca un error al cargar el tipo.Gets the type associated with the specified class identifier (CLSID) from the specified server, specifying whether to throw an exception if an error occurs while loading the type.

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, System::String ^ server, bool throwOnError);
public static Type GetTypeFromCLSID (Guid clsid, string server, bool throwOnError);
static member GetTypeFromCLSID : Guid * string * bool -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, server As String, throwOnError As Boolean) As Type

Parámetros

clsid
Guid

Identificador CLSID del tipo que se va a obtener.The CLSID of the type to get.

server
String

Servidor desde el que se va a cargar el tipo.The server from which to load the type. Si el nombre de servidor es null, el resultado que el método devuelve automáticamente es el equipo local.If the server name is null, this method automatically reverts to the local machine.

throwOnError
Boolean

true para producir cualquier excepción que se genere.true to throw any exception that occurs.

o bien-or- false para pasar por alto cualquier excepción que se produzca.false to ignore any exception that occurs.

Devoluciones

Type

System.__ComObject independientemente de que CLSID sea válido.System.__ComObject regardless of whether the CLSID is valid.

Ejemplos

En el ejemplo siguiente se usa el CLSID del objeto de aplicación de Microsoft Word para recuperar un tipo com que representa la aplicación Microsoft Word de un servidor denominado computer17.central.contoso.com.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application from a server named computer17.central.contoso.com. A continuación, crea una instancia del tipo llamando al Activator.CreateInstance método y lo cierra llamando al método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Se produce una excepción si se produce un error al cargar el tipo.An exception is thrown if an error occurs while loading the type.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

public class Example
{
   private const string WORD_CLSID = "{000209FF-0000-0000-C000-000000000046}";
   
   public static void Main()
   {
      try {
         // Start an instance of the Word application.
         var word = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), 
                                          "computer17.central.contoso.com",
                                          true);
         Console.WriteLine("Instantiated Type object from CLSID {0}",
                           WORD_CLSID);
         Object wordObj = Activator.CreateInstance(word);
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName, WORD_CLSID);
            
         // Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, null, 
                           wordObj, new object[] { 0, 0, false } );
      }
      // The method can throw any of a variety of exceptions.
      catch (Exception e) {
         Console.WriteLine("{0}: Unable to instantiate an object for {1}", 
                           e.GetType().Name, WORD_CLSID);
      }      
   }
}
// The example displays the following output:
//    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
//    Instantiated Microsoft.Office.Interop.Word.ApplicationClass
Imports System.Reflection
Imports System.Runtime.InteropServices

Module Example
   Private Const WORD_CLSID As String = "{000209FF-0000-0000-C000-000000000046}"
   
   Public Sub Main()
      Try
         ' Start an instance of the Word application.
         Dim word As Type = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), 
                                                  "computer17.central.contoso.com",
                                                  True)
         Console.WriteLine("Instantiated Type object from CLSID {0}",
                           WORD_CLSID)

         Dim wordObj As Object = Activator.CreateInstance(word)
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName)
         
         ' Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, Nothing, 
                           wordObj, New Object() { 0, 0, False } )
      ' The method can throw any of a variety of exceptions.
      Catch e As Exception
         Console.WriteLine("{0}: Unable to instantiate an object for {1}", 
                           e.GetType().Name, WORD_CLSID)
      End Try
   End Sub
End Module
' The example displays the following output:
'    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
'    Instantiated Microsoft.Office.Interop.Word.ApplicationClass

Comentarios

El GetTypeFromCLSID método admite el acceso enlazado en tiempo de ejecución a objetos com no administrados desde .NET Framework aplicaciones cuando se conoce el identificador de clase (CLSID) del objeto com.The GetTypeFromCLSID method supports late-bound access to unmanaged COM objects from .NET Framework apps when you know the COM object's class identifier (CLSID). El identificador de clase para las clases COM se define en la clave HKEY_CLASSES_ROOT \CLSID del registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Puede recuperar el valor de la IsCOMObject propiedad para determinar si el tipo devuelto por este método es un objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Sugerencia

Puede llamar al GetTypeFromProgID método para el acceso enlazado en tiempo de ejecución a los objetos com cuyo identificador de programación (ProgID) conoce.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

La creación de instancias de un objeto COM no administrado desde su CLSID es un proceso de dos pasos:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtiene un Type objeto que representa el __ComObject correspondiente al CLSID llamando al GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Llame al Activator.CreateInstance(Type) método para crear una instancia del objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Se OutOfMemoryException producirán excepciones como cuando se especifique true para throwOnError , pero no se producirá un error en los CLSID no registrados.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Notas a los autores de las llamadas

Este método está pensado para usarse cuando se trabaja con objetos COM, no con objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos los objetos administrados, incluidos los que son visibles para COM (es decir, su ComVisibleAttribute atributo true ) tienen un GUID devuelto por la GUID propiedad.All managed objects, including those that are visible to COM (that is, their ComVisibleAttribute attribute is true) have a GUID that is returned by the GUID property. Aunque el GetTypeFromCLSID(Guid, String, Boolean) método devuelve un Type objeto que corresponde al GUID de un objeto administrado determinado, no se puede utilizar ese Type objeto para crear una instancia de tipo llamando al CreateInstance(Type) método, como se muestra en el ejemplo siguiente.Although the GetTypeFromCLSID(Guid, String, Boolean) method returns a Type object that corresponds to the GUID for a particular managed object, you can't use that Type object to create a type instance by calling the CreateInstance(Type) method, as the following example shows.

[! code-CSharpSystem. Type. GetTypeFromCLSID # 11] [! code-VBSystem. Type. GetTypeFromCLSID # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] En su lugar, GetTypeFromCLSID(Guid, String, Boolean) solo se debe utilizar para recuperar el GUID de un objeto com no administrado y el Type objeto resultante que se pasa al CreateInstance(Type) método debe representar un objeto com no administrado.Instead, the GetTypeFromCLSID(Guid, String, Boolean) should only be used to retrieve the GUID of an unmanaged COM object, and the resulting Type object that is passed to the CreateInstance(Type) method must represent an unmanaged COM object.

GetTypeFromCLSID(Guid, String)

Obtiene el tipo asociado al identificador de clase (CLSID) especificado desde el servidor especificado.Gets the type associated with the specified class identifier (CLSID) from the specified server.

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, System::String ^ server);
public static Type GetTypeFromCLSID (Guid clsid, string server);
static member GetTypeFromCLSID : Guid * string -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, server As String) As Type

Parámetros

clsid
Guid

Identificador CLSID del tipo que se va a obtener.The CLSID of the type to get.

server
String

Servidor desde el que se va a cargar el tipo.The server from which to load the type. Si el nombre de servidor es null, el resultado que el método devuelve automáticamente es el equipo local.If the server name is null, this method automatically reverts to the local machine.

Devoluciones

Type

System.__ComObject independientemente de que CLSID sea válido.System.__ComObject regardless of whether the CLSID is valid.

Ejemplos

En el ejemplo siguiente se usa el CLSID del objeto de aplicación de Microsoft Word para recuperar un tipo com que representa la aplicación Microsoft Word de un servidor denominado computer17.central.contoso.com.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application from a server named computer17.central.contoso.com. A continuación, crea una instancia del tipo llamando al Activator.CreateInstance método y lo cierra llamando al método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

public class Example
{
   private const string WORD_CLSID = "{000209FF-0000-0000-C000-000000000046}";
   
   public static void Main()
   {
      // Start an instance of the Word application.
      var word = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), "computer17.central.contoso.com");
      Console.WriteLine("Instantiated Type object from CLSID {0}",
                        WORD_CLSID);
      try {
         Object wordObj = Activator.CreateInstance(word);
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName, WORD_CLSID);
            
         // Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, null, 
                           wordObj, new object[] { 0, 0, false } );
      }
      catch (COMException) {
         Console.WriteLine("Unable to instantiate object.");   
      }
   }
}
// The example displays the following output:
//    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
//    Instantiated Microsoft.Office.Interop.Word.ApplicationClass
Imports System.Reflection
Imports System.Runtime.InteropServices

Module Example
   Private Const WORD_CLSID As String = "{000209FF-0000-0000-C000-000000000046}"
   
   Public Sub Main()
      ' Start an instance of the Word application.
      Dim word As Type = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), "computer17.central.contoso.com")
      Console.WriteLine("Instantiated Type object from CLSID {0}",
                        WORD_CLSID)
      Try
         Dim wordObj As Object = Activator.CreateInstance(word)
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName)
         
         ' Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, Nothing, 
                           wordObj, New Object() { 0, 0, False } )
      Catch e As COMException
         Console.WriteLine("Unable to instantiate object.")
      End Try
   End Sub
End Module
' The example displays the following output:
'    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
'    Instantiated Microsoft.Office.Interop.Word.ApplicationClass

Comentarios

El GetTypeFromCLSID método admite el acceso enlazado en tiempo de ejecución a objetos com no administrados desde .NET Framework aplicaciones cuando se conoce el identificador de clase (CLSID) del objeto com.The GetTypeFromCLSID method supports late-bound access to unmanaged COM objects from .NET Framework apps when you know the COM object's class identifier (CLSID). El identificador de clase para las clases COM se define en la clave HKEY_CLASSES_ROOT \CLSID del registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Puede recuperar el valor de la IsCOMObject propiedad para determinar si el tipo devuelto por este método es un objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Sugerencia

Puede llamar al GetTypeFromProgID método para el acceso enlazado en tiempo de ejecución a los objetos com cuyo identificador de programación (ProgID) conoce.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

La creación de instancias de un objeto COM no administrado desde su CLSID es un proceso de dos pasos:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtiene un Type objeto que representa el __ComObject correspondiente al CLSID llamando al GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Llame al Activator.CreateInstance(Type) método para crear una instancia del objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Notas a los autores de las llamadas

Este método está pensado para usarse cuando se trabaja con objetos COM, no con objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos los objetos administrados, incluidos los que son visibles para COM (es decir, su ComVisibleAttribute atributo true ) tienen un GUID devuelto por la GUID propiedad.All managed objects, including those that are visible to COM (that is, their ComVisibleAttribute attribute is true) have a GUID that is returned by the GUID property. Aunque el método devuelve un Type objeto que se corresponde con el GUID de .NET Framework objetos, no se puede utilizar ese Type objeto para crear una instancia de tipo llamando al CreateInstance(Type) método, como se muestra en el ejemplo siguiente.Although the method returns a Type object that corresponds to the GUID for .NET Framework objects, you can't use that Type object to create a type instance by calling the CreateInstance(Type) method, as the following example shows.

[! code-CSharpSystem. Type. GetTypeFromCLSID # 11] [! code-VBSystem. Type. GetTypeFromCLSID # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] En su lugar, GetTypeFromCLSID(Guid, String, Boolean) solo se debe utilizar para recuperar el GUID de un objeto com no administrado y el Type objeto resultante que se pasa al CreateInstance(Type) método debe representar un objeto com no administrado.Instead, the GetTypeFromCLSID(Guid, String, Boolean) should only be used to retrieve the GUID of an unmanaged COM object, and the resulting Type object that is passed to the CreateInstance(Type) method must represent an unmanaged COM object.

GetTypeFromCLSID(Guid)

Obtiene el tipo asociado al identificador de clase especificado (CLSID).Gets the type associated with the specified class identifier (CLSID).

public:
 static Type ^ GetTypeFromCLSID(Guid clsid);
public static Type GetTypeFromCLSID (Guid clsid);
static member GetTypeFromCLSID : Guid -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid) As Type

Parámetros

clsid
Guid

Identificador CLSID del tipo que se va a obtener.The CLSID of the type to get.

Devoluciones

Type

System.__ComObject independientemente de que CLSID sea válido.System.__ComObject regardless of whether the CLSID is valid.

Ejemplos

En el ejemplo siguiente se utiliza el CLSID del objeto de aplicación de Microsoft Word para recuperar un tipo com que representa la aplicación Microsoft Word.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application. A continuación, crea una instancia del tipo llamando al Activator.CreateInstance método y lo cierra llamando al método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

public class Example
{
   private const string WORD_CLSID = "{000209FF-0000-0000-C000-000000000046}";
   
   public static void Main()
   {
      // Start an instance of the Word application.
      var word = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID));
      Console.WriteLine("Instantiated Type object from CLSID {0}",
                        WORD_CLSID);
      Object wordObj = Activator.CreateInstance(word);
      Console.WriteLine("Instantiated {0}", 
                        wordObj.GetType().FullName);
      
      // Close Word.
      word.InvokeMember("Quit", BindingFlags.InvokeMethod, null, 
                        wordObj, new object[] { 0, 0, false } );
   }
}
// The example displays the following output:
//    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
//    Instantiated Microsoft.Office.Interop.Word.ApplicationClass
Imports System.Reflection
Imports System.Runtime.InteropServices

Module Example
   Private Const WORD_CLSID As String = "{000209FF-0000-0000-C000-000000000046}"
   
   Public Sub Main()
      ' Start an instance of the Word application.
      Dim word As Type = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID))
      Console.WriteLine("Instantiated Type object from CLSID {0}",
                        WORD_CLSID)
      Dim wordObj As Object = Activator.CreateInstance(word)
      Console.WriteLine("Instantiated {0}", 
                        wordObj.GetType().FullName)
      
      ' Close Word.
      word.InvokeMember("Quit", BindingFlags.InvokeMethod, Nothing, 
                        wordObj, New Object() { 0, 0, False } )
   End Sub
End Module
' The example displays the following output:
'    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
'    Instantiated Microsoft.Office.Interop.Word.ApplicationClass

Comentarios

El GetTypeFromCLSID método admite el acceso enlazado en tiempo de ejecución a objetos com no administrados desde .NET Framework aplicaciones cuando se conoce el identificador de clase (CLSID) del objeto com.The GetTypeFromCLSID method supports late-bound access to unmanaged COM objects from .NET Framework apps when you know the COM object's class identifier (CLSID). El identificador de clase para las clases COM se define en la clave HKEY_CLASSES_ROOT \CLSID del registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Puede recuperar el valor de la IsCOMObject propiedad para determinar si el tipo devuelto por este método es un objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Sugerencia

Puede llamar al GetTypeFromProgID método para el acceso enlazado en tiempo de ejecución a los objetos com cuyo identificador de programación (ProgID) conoce.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

La creación de instancias de un objeto COM no administrado desde su CLSID es un proceso de dos pasos:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtiene un Type objeto que representa el __ComObject correspondiente al CLSID llamando al GetTypeFromCLSID método.Get a Type object that represents the__ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Llame al Activator.CreateInstance(Type) método para crear una instancia del objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Vea el ejemplo de una ilustración.See the example for an illustration.

La GetTypeFromCLSID(Guid) sobrecarga omite cualquier excepción que se pueda producir al crear una instancia de un Type objeto basándose en el clsid argumento.The GetTypeFromCLSID(Guid) overload ignores any exception that may occur when instantiating a Type object based on the clsid argument. Tenga en cuenta que no se produce ninguna excepción si clsid no se encuentra en el registro.Note that no exception is thrown if clsid is not found in the registry.

Notas a los autores de las llamadas

Este método está pensado para usarse cuando se trabaja con objetos COM, no con objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos los objetos administrados, incluidos los que son visibles para COM (es decir, su ComVisibleAttribute atributo true ) tienen un GUID devuelto por la GUID propiedad.All managed objects, including those that are visible to COM (that is, their ComVisibleAttribute attribute is true) have a GUID that is returned by the GUID property. Aunque el método devuelve un Type objeto que se corresponde con el GUID de .NET Framework objetos, no se puede utilizar ese Type objeto para crear una instancia de tipo llamando al CreateInstance(Type) método, como se muestra en el ejemplo siguiente.Although the method returns a Type object that corresponds to the GUID for .NET Framework objects, you can't use that Type object to create a type instance by calling the CreateInstance(Type) method, as the following example shows.

[! code-CSharpSystem. Type. GetTypeFromCLSID # 11] [! code-VBSystem. Type. GetTypeFromCLSID # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] En su lugar, GetTypeFromCLSID(Guid, String, Boolean) solo se debe utilizar para recuperar el GUID de un objeto com no administrado y el Type objeto resultante que se pasa al CreateInstance(Type) método debe representar un objeto com no administrado.Instead, the GetTypeFromCLSID(Guid, String, Boolean) should only be used to retrieve the GUID of an unmanaged COM object, and the resulting Type object that is passed to the CreateInstance(Type) method must represent an unmanaged COM object.

GetTypeFromCLSID(Guid, Boolean)

Obtiene el tipo asociado al identificador de clase (CLSID) especificado, que debe indicar si se producirá una excepción en caso de que se produzca un error al cargar el tipo.Gets the type associated with the specified class identifier (CLSID), specifying whether to throw an exception if an error occurs while loading the type.

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, bool throwOnError);
public static Type GetTypeFromCLSID (Guid clsid, bool throwOnError);
static member GetTypeFromCLSID : Guid * bool -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, throwOnError As Boolean) As Type

Parámetros

clsid
Guid

Identificador CLSID del tipo que se va a obtener.The CLSID of the type to get.

throwOnError
Boolean

true para producir cualquier excepción que se genere.true to throw any exception that occurs.

o bien-or- false para pasar por alto cualquier excepción que se produzca.false to ignore any exception that occurs.

Devoluciones

Type

System.__ComObject independientemente de que CLSID sea válido.System.__ComObject regardless of whether the CLSID is valid.

Ejemplos

En el ejemplo siguiente se utiliza el CLSID del objeto de aplicación de Microsoft Word para recuperar un tipo com que representa la aplicación Microsoft Word.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application. A continuación, crea una instancia del tipo llamando al Activator.CreateInstance método y lo cierra llamando al método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Se produce una excepción si se produce un error al cargar el tipo.An exception is thrown if an error occurs while loading the type.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

public class Example
{
   private const string WORD_CLSID = "{000209FF-0000-0000-C000-000000000046}";
   
   public static void Main()
   {
      try {
         // Start an instance of the Word application.
         var word = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), true);
         Console.WriteLine("Instantiated Type object from CLSID {0}",
                           WORD_CLSID);
         Object wordObj = Activator.CreateInstance(word);
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName, WORD_CLSID);
         
         // Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, null, 
                           wordObj, new object[] { 0, 0, false } );
      }
      catch (Exception) {
         Console.WriteLine("Unable to instantiate an object for {0}", WORD_CLSID);
      }
   }
}
// The example displays the following output:
//    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
//    Instantiated Microsoft.Office.Interop.Word.ApplicationClass
Imports System.Reflection
Imports System.Runtime.InteropServices

Module Example
   Private Const WORD_CLSID As String = "{000209FF-0000-0000-C000-000000000046}"
   
   Public Sub Main()
      ' Start an instance of the Word application.
      Try
         Dim word As Type = Type.GetTypeFromCLSID(Guid.Parse(WORD_CLSID), True)
         Console.WriteLine("Instantiated Type object from CLSID {0}",
                           WORD_CLSID)
         Dim wordObj As Object = Activator.CreateInstance(word)
         Console.WriteLine("Instantiated {0}", 
                           wordObj.GetType().FullName)
         
         ' Close Word.
         word.InvokeMember("Quit", BindingFlags.InvokeMethod, Nothing, 
                           wordObj, New Object() { 0, 0, False } )
      ' The method can throw any of a number of unexpected exceptions.
      Catch e As Exception
         Console.WriteLine("Unable to instantiate an object for {0}", WORD_CLSID)
      End Try
   End Sub
End Module
' The example displays the following output:
'    Instantiated Type object from CLSID {000209FF-0000-0000-C000-000000000046}
'    Instantiated Microsoft.Office.Interop.Word.ApplicationClass

Comentarios

El GetTypeFromCLSID método admite el acceso enlazado en tiempo de ejecución a objetos com no administrados desde .NET Framework aplicaciones cuando se conoce el identificador de clase (CLSID) del objeto com.The GetTypeFromCLSID method supports late-bound access to unmanaged COM objects from .NET Framework apps when you know the COM object's class identifier (CLSID). El identificador de clase para las clases COM se define en la clave HKEY_CLASSES_ROOT \CLSID del registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Puede recuperar el valor de la IsCOMObject propiedad para determinar si el tipo devuelto por este método es un objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Sugerencia

Puede llamar al GetTypeFromProgID método para el acceso enlazado en tiempo de ejecución a los objetos com cuyo identificador de programación (ProgID) conoce.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

La creación de instancias de un objeto COM no administrado desde su CLSID es un proceso de dos pasos:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtiene un Type objeto que representa el __ComObject correspondiente al CLSID llamando al GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Llame al Activator.CreateInstance(Type) método para crear una instancia del objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Vea el ejemplo de una ilustración.See the example for an illustration.

Se OutOfMemoryException producirán excepciones como cuando se especifique true para throwOnError , pero no se producirá un error en los CLSID no registrados.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Notas a los autores de las llamadas

Este método está pensado para usarse cuando se trabaja con objetos COM, no con objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos los objetos administrados, incluidos los que son visibles para COM (es decir, su ComVisibleAttribute atributo true ) tienen un GUID devuelto por la GUID propiedad.All managed objects, including those that are visible to COM (that is, their ComVisibleAttribute attribute is true) have a GUID that is returned by the GUID property. Aunque el método devuelve un Type objeto que se corresponde con el GUID de .NET Framework objetos, no se puede utilizar ese Type objeto para crear una instancia de tipo llamando al CreateInstance(Type) método, como se muestra en el ejemplo siguiente.Although the method returns a Type object that corresponds to the GUID for .NET Framework objects, you can't use that Type object to create a type instance by calling the CreateInstance(Type) method, as the following example shows.

[! code-CSharpSystem. Type. GetTypeFromCLSID # 11] [! code-VBSystem. Type. GetTypeFromCLSID # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] En su lugar, GetTypeFromCLSID(Guid, String, Boolean) solo se debe utilizar para recuperar el GUID de un objeto com no administrado y el Type objeto resultante que se pasa al CreateInstance(Type) método debe representar un objeto com no administrado.Instead, the GetTypeFromCLSID(Guid, String, Boolean) should only be used to retrieve the GUID of an unmanaged COM object, and the resulting Type object that is passed to the CreateInstance(Type) method must represent an unmanaged COM object.

Se aplica a