Type.GetTypeFromCLSID Type.GetTypeFromCLSID Type.GetTypeFromCLSID Type.GetTypeFromCLSID Method

Definição

Obtém o tipo associado ao identificador de classe especificado (CLSID).Gets the type associated with the specified class identifier (CLSID).

Sobrecargas

GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean)

Obtém o tipo associado ao CLSID (identificador de classe) especificado do servidor especificado, determinando se uma exceção deverá ser gerada se ocorrer um erro durante o carregamento do 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) GetTypeFromCLSID(Guid, String) GetTypeFromCLSID(Guid, String) GetTypeFromCLSID(Guid, String)

Obtém o tipo associado ao CLSID (identificador de classe) especificado do servidor especificado.Gets the type associated with the specified class identifier (CLSID) from the specified server.

GetTypeFromCLSID(Guid, Boolean) GetTypeFromCLSID(Guid, Boolean) GetTypeFromCLSID(Guid, Boolean) GetTypeFromCLSID(Guid, Boolean)

Obtém o tipo associado ao CLSID (identificador de classe) especificado, especificando se deverá gerar uma exceção se ocorrer um erro ao carregar o 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) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid)

Obtém o tipo associado ao identificador de classe especificado (CLSID).Gets the type associated with the specified class identifier (CLSID).

GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean) GetTypeFromCLSID(Guid, String, Boolean)

Obtém o tipo associado ao CLSID (identificador de classe) especificado do servidor especificado, determinando se uma exceção deverá ser gerada se ocorrer um erro durante o carregamento do 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 Guid Guid Guid

O CLSID do tipo a ser obtido.The CLSID of the type to get.

server
String String String String

O servidor do qual carregar o tipo.The server from which to load the type. Caso o nome do servidor seja null, este método retorna automaticamente para o computador local.If the server name is null, this method automatically reverts to the local machine.

throwOnError
Boolean Boolean Boolean Boolean

true para gerar qualquer exceção que ocorra.true to throw any exception that occurs.

- ou --or- false para ignorar qualquer exceção que ocorra.false to ignore any exception that occurs.

Retornos

System.__ComObject independentemente do CLSID ser válido.System.__ComObject regardless of whether the CLSID is valid.

Exemplos

O exemplo a seguir usa o CLSID do objeto de aplicativo do Microsoft Word para recuperar um tipo com que representa o aplicativo do Microsoft Word de um servidor chamado 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. Em seguida, ele cria uma instância do tipo Activator.CreateInstance chamando o método e o fecha chamando o método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Uma exceção será lançada se ocorrer um erro durante o carregamento do 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

Comentários

O GetTypeFromCLSID método dá suporte ao acesso de ligação tardia a objetos com não gerenciados de .NET Framework aplicativos quando você conhece o identificador de classe do objeto com (CLSID).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). O identificador de classe para classes COM é definido na chave HKEY_CLASSES_ROOT\CLSID do registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Você pode recuperar o valor da IsCOMObject propriedade para determinar se o tipo retornado por esse método é um objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Dica

Você pode chamar o GetTypeFromProgID método para acesso de ligação tardia a objetos com cujo identificador programático (ProgID) você sabe.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

A instanciação de um objeto COM não gerenciado de seu CLSID é um processo de duas etapas:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtenha um Type objeto que representa o __ComObject que corresponde ao CLSID chamando o GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Chame o Activator.CreateInstance(Type) método para instanciar o objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Exceções como OutOfMemoryException serão geradas ao especificar true for throwOnError, mas não haverá falha para CLSIDs não registrados.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Notas aos Chamadores

Esse método destina-se ao uso ao trabalhar com objetos COM, não com objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos os objetos gerenciados, incluindo aqueles visíveis para com (ou seja, seu ComVisibleAttribute trueatributo) têm um GUID GUID que é retornado pela propriedade.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. Embora o GetTypeFromCLSID(Guid, String, Boolean) método retorne Type um objeto que corresponde ao GUID de um objeto gerenciado específico, você não pode usar Type esse objeto para criar uma instância de tipo chamando CreateInstance(Type) o método, como o exemplo a seguir programas.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] Em vez disso GetTypeFromCLSID(Guid, String, Boolean) , o só deve ser usado para recuperar o GUID de um objeto com não gerenciado e o objeto Type resultante que é passado para o CreateInstance(Type) método deve representar um objeto com não gerenciado.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) GetTypeFromCLSID(Guid, String) GetTypeFromCLSID(Guid, String) GetTypeFromCLSID(Guid, String)

Obtém o tipo associado ao CLSID (identificador de classe) especificado do 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 Guid Guid Guid

O CLSID do tipo a ser obtido.The CLSID of the type to get.

server
String String String String

O servidor do qual carregar o tipo.The server from which to load the type. Caso o nome do servidor seja null, este método retorna automaticamente para o computador local.If the server name is null, this method automatically reverts to the local machine.

Retornos

System.__ComObject independentemente do CLSID ser válido.System.__ComObject regardless of whether the CLSID is valid.

Exemplos

O exemplo a seguir usa o CLSID do objeto de aplicativo do Microsoft Word para recuperar um tipo com que representa o aplicativo do Microsoft Word de um servidor chamado 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. Em seguida, ele cria uma instância do tipo Activator.CreateInstance chamando o método e o fecha chamando o 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

Comentários

O GetTypeFromCLSID método dá suporte ao acesso de ligação tardia a objetos com não gerenciados de .NET Framework aplicativos quando você conhece o identificador de classe do objeto com (CLSID).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). O identificador de classe para classes COM é definido na chave HKEY_CLASSES_ROOT\CLSID do registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Você pode recuperar o valor da IsCOMObject propriedade para determinar se o tipo retornado por esse método é um objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Dica

Você pode chamar o GetTypeFromProgID método para acesso de ligação tardia a objetos com cujo identificador programático (ProgID) você sabe.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

A instanciação de um objeto COM não gerenciado de seu CLSID é um processo de duas etapas:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtenha um Type objeto que representa o __ComObject que corresponde ao CLSID chamando o GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Chame o Activator.CreateInstance(Type) método para instanciar o objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Notas aos Chamadores

Esse método destina-se ao uso ao trabalhar com objetos COM, não com objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos os objetos gerenciados, incluindo aqueles visíveis para com (ou seja, seu ComVisibleAttribute trueatributo) têm um GUID GUID que é retornado pela propriedade.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. Embora o método retorne Type um objeto que corresponda ao GUID de .NET Framework objetos, você não pode usar Type esse objeto para criar uma instância de tipo chamando CreateInstance(Type) o método, como mostra o exemplo a seguir.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] Em vez disso GetTypeFromCLSID(Guid, String, Boolean) , o só deve ser usado para recuperar o GUID de um objeto com não gerenciado e o objeto Type resultante que é passado para o CreateInstance(Type) método deve representar um objeto com não gerenciado.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) GetTypeFromCLSID(Guid, Boolean) GetTypeFromCLSID(Guid, Boolean) GetTypeFromCLSID(Guid, Boolean)

Obtém o tipo associado ao CLSID (identificador de classe) especificado, especificando se deverá gerar uma exceção se ocorrer um erro ao carregar o 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 Guid Guid Guid

O CLSID do tipo a ser obtido.The CLSID of the type to get.

throwOnError
Boolean Boolean Boolean Boolean

true para gerar qualquer exceção que ocorra.true to throw any exception that occurs.

- ou --or- false para ignorar qualquer exceção que ocorra.false to ignore any exception that occurs.

Retornos

System.__ComObject independentemente do CLSID ser válido.System.__ComObject regardless of whether the CLSID is valid.

Exemplos

O exemplo a seguir usa o CLSID do objeto de aplicativo do Microsoft Word para recuperar um tipo com que representa o aplicativo do 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. Em seguida, ele cria uma instância do tipo Activator.CreateInstance chamando o método e o fecha chamando o método Application. Quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Uma exceção será lançada se ocorrer um erro durante o carregamento do 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

Comentários

O GetTypeFromCLSID método dá suporte ao acesso de ligação tardia a objetos com não gerenciados de .NET Framework aplicativos quando você conhece o identificador de classe do objeto com (CLSID).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). O identificador de classe para classes COM é definido na chave HKEY_CLASSES_ROOT\CLSID do registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Você pode recuperar o valor da IsCOMObject propriedade para determinar se o tipo retornado por esse método é um objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Dica

Você pode chamar o GetTypeFromProgID método para acesso de ligação tardia a objetos com cujo identificador programático (ProgID) você sabe.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

A instanciação de um objeto COM não gerenciado de seu CLSID é um processo de duas etapas:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtenha um Type objeto que representa o __ComObject que corresponde ao CLSID chamando o GetTypeFromCLSID método.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Chame o Activator.CreateInstance(Type) método para instanciar o objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Consulte o exemplo de uma ilustração.See the example for an illustration.

Exceções como OutOfMemoryException serão geradas ao especificar true for throwOnError, mas não haverá falha para CLSIDs não registrados.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Notas aos Chamadores

Esse método destina-se ao uso ao trabalhar com objetos COM, não com objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos os objetos gerenciados, incluindo aqueles visíveis para com (ou seja, seu ComVisibleAttribute trueatributo) têm um GUID GUID que é retornado pela propriedade.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. Embora o método retorne Type um objeto que corresponda ao GUID de .NET Framework objetos, você não pode usar Type esse objeto para criar uma instância de tipo chamando CreateInstance(Type) o método, como mostra o exemplo a seguir.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] Em vez disso GetTypeFromCLSID(Guid, String, Boolean) , o só deve ser usado para recuperar o GUID de um objeto com não gerenciado e o objeto Type resultante que é passado para o CreateInstance(Type) método deve representar um objeto com não gerenciado.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) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid)

Obtém o tipo associado ao identificador de classe 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 Guid Guid Guid

O CLSID do tipo a ser obtido.The CLSID of the type to get.

Retornos

System.__ComObject independentemente do CLSID ser válido.System.__ComObject regardless of whether the CLSID is valid.

Exemplos

O exemplo a seguir usa o CLSID do objeto de aplicativo do Microsoft Word para recuperar um tipo com que representa o aplicativo do 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. Em seguida, ele cria uma instância do tipo Activator.CreateInstance chamando o método e o fecha chamando o 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

Comentários

O GetTypeFromCLSID método dá suporte ao acesso de ligação tardia a objetos com não gerenciados de .NET Framework aplicativos quando você conhece o identificador de classe do objeto com (CLSID).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). O identificador de classe para classes COM é definido na chave HKEY_CLASSES_ROOT\CLSID do registro.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Você pode recuperar o valor da IsCOMObject propriedade para determinar se o tipo retornado por esse método é um objeto com.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Dica

Você pode chamar o GetTypeFromProgID método para acesso de ligação tardia a objetos com cujo identificador programático (ProgID) você sabe.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

A instanciação de um objeto COM não gerenciado de seu CLSID é um processo de duas etapas:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Obtenha um Type objeto que representa o__ComObject que corresponde ao CLSID chamando o GetTypeFromCLSID método.Get a Type object that represents the__ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Chame o Activator.CreateInstance(Type) método para instanciar o objeto com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Consulte o exemplo de uma ilustração.See the example for an illustration.

A GetTypeFromCLSID(Guid) sobrecarga ignora qualquer exceção que possa ocorrer ao instanciar um Type objeto com base no clsid argumento.The GetTypeFromCLSID(Guid) overload ignores any exception that may occur when instantiating a Type object based on the clsid argument. Observe que nenhuma exceção será gerada se clsid não for encontrada no registro.Note that no exception is thrown if clsid is not found in the registry.

Notas aos Chamadores

Esse método destina-se ao uso ao trabalhar com objetos COM, não com objetos .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Todos os objetos gerenciados, incluindo aqueles visíveis para com (ou seja, seu ComVisibleAttribute trueatributo) têm um GUID GUID que é retornado pela propriedade.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. Embora o método retorne Type um objeto que corresponda ao GUID de .NET Framework objetos, você não pode usar Type esse objeto para criar uma instância de tipo chamando CreateInstance(Type) o método, como mostra o exemplo a seguir.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] Em vez disso GetTypeFromCLSID(Guid, String, Boolean) , o só deve ser usado para recuperar o GUID de um objeto com não gerenciado e o objeto Type resultante que é passado para o CreateInstance(Type) método deve representar um objeto com não gerenciado.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.

Aplica-se a