Type.GetTypeFromCLSID Metoda

Definice

Získá typ přidružený k zadanému identifikátoru třídy (CLSID).Gets the type associated with the specified class identifier (CLSID).

Přetížení

GetTypeFromCLSID(Guid, String, Boolean)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID) ze zadaného serveru a určí, jestli se má vyvolat výjimka, pokud při načítání typu dojde k chybě.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)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID) ze zadaného serveru.Gets the type associated with the specified class identifier (CLSID) from the specified server.

GetTypeFromCLSID(Guid)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID).Gets the type associated with the specified class identifier (CLSID).

GetTypeFromCLSID(Guid, Boolean)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID), který určuje, jestli se má vyvolat výjimka, pokud při načítání typu dojde k chybě.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)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID) ze zadaného serveru a určí, jestli se má vyvolat výjimka, pokud při načítání typu dojde k chybě.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);
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

Parametry

clsid
Guid

Identifikátor CLSID typu, který má být získán.The CLSID of the type to get.

server
String

Server, ze kterého chcete typ načíst.The server from which to load the type. Pokud je název serveru null , tato metoda automaticky obnoví místní počítač.If the server name is null, this method automatically reverts to the local machine.

throwOnError
Boolean

true k vyvolání jakékoli výjimky, ke které dojde.true to throw any exception that occurs.

-nebo--or- false ignorování všech výjimek, ke kterým dojde.false to ignore any exception that occurs.

Návraty

Type

System.__ComObject bez ohledu na to, zda je identifikátor CLSID platný.System.__ComObject regardless of whether the CLSID is valid.

Příklady

Následující příklad používá identifikátor CLSID objektu aplikace Microsoft Word k načtení typu modelu COM, který představuje aplikaci Microsoft Word ze serveru s názvem 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. Potom vytvoří instanci typu voláním Activator.CreateInstance metody a uzavře ji voláním metody Application. quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Výjimka je vyvolána, pokud při načítání typu dojde k chybě.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

Poznámky

GetTypeFromCLSIDMetoda podporuje pozdní přístup k nespravovaným objektům modelu COM z aplikace .NET Framework, když znáte identifikátor třídy objektu 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). Identifikátor třídy pro třídy COM je definován v klíči HKEY_CLASSES_ROOT\CLSID registru.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Můžete načíst hodnotu IsCOMObject Vlastnosti k určení, zda typ vrácený touto metodou je objekt modelu COM.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tip

Můžete zavolat GetTypeFromProgID metodu pro přístup s pozdní vazbou na objekty COM, jejichž programový identifikátor (ProgID) víte.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Vytvoření instance nespravovaného objektu COM z jeho CLSID je proces se dvěma kroky:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Získejte Type objekt, který představuje __ComObject , který odpovídá identifikátoru CLSID voláním GetTypeFromCLSID metody.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Zavolejte Activator.CreateInstance(Type) metodu pro vytvoření instance objektu com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Výjimky, jako například OutOfMemoryException , budou vyvolány při určení true pro throwOnError , ale nebudou pro neregistrované identifikátory CLSID úspěšné.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Poznámky pro volající

Tato metoda je určena pro použití při práci s objekty COM, nikoli s .NET Framework objekty.This method is intended for use when working with COM objects, not with .NET Framework objects. Všechny spravované objekty, včetně těch, které jsou viditelné pro model COM (tj. jejich ComVisibleAttribute atribut true ), mají identifikátor GUID, který je vrácen GUID vlastností.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. I když GetTypeFromCLSID(Guid, String, Boolean) Metoda vrátí Type objekt, který odpovídá identifikátoru GUID konkrétního spravovaného objektu, nemůžete použít tento Type objekt k vytvoření instance typu voláním CreateInstance(Type) metody, jak ukazuje následující příklad.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] Místo toho GetTypeFromCLSID(Guid, String, Boolean) by měla být použita pouze k načtení identifikátoru GUID nespravovaného objektu modelu COM a výsledný Type objekt, který je předán CreateInstance(Type) metodě, musí představovat NESPRAVOVANÝ objekt modelu COM.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.

Platí pro

GetTypeFromCLSID(Guid, String)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID) ze zadaného serveru.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);
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

Parametry

clsid
Guid

Identifikátor CLSID typu, který má být získán.The CLSID of the type to get.

server
String

Server, ze kterého chcete typ načíst.The server from which to load the type. Pokud je název serveru null , tato metoda automaticky obnoví místní počítač.If the server name is null, this method automatically reverts to the local machine.

Návraty

Type

System.__ComObject bez ohledu na to, zda je identifikátor CLSID platný.System.__ComObject regardless of whether the CLSID is valid.

Příklady

Následující příklad používá identifikátor CLSID objektu aplikace Microsoft Word k načtení typu modelu COM, který představuje aplikaci Microsoft Word ze serveru s názvem 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. Potom vytvoří instanci typu voláním Activator.CreateInstance metody a uzavře ji voláním metody 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

Poznámky

GetTypeFromCLSIDMetoda podporuje pozdní přístup k nespravovaným objektům modelu COM z aplikace .NET Framework, když znáte identifikátor třídy objektu 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). Identifikátor třídy pro třídy COM je definován v klíči HKEY_CLASSES_ROOT\CLSID registru.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Můžete načíst hodnotu IsCOMObject Vlastnosti k určení, zda typ vrácený touto metodou je objekt modelu COM.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tip

Můžete zavolat GetTypeFromProgID metodu pro přístup s pozdní vazbou na objekty COM, jejichž programový identifikátor (ProgID) víte.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Vytvoření instance nespravovaného objektu COM z jeho CLSID je proces se dvěma kroky:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Získejte Type objekt, který představuje __ComObject , který odpovídá identifikátoru CLSID voláním GetTypeFromCLSID metody.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Zavolejte Activator.CreateInstance(Type) metodu pro vytvoření instance objektu com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Poznámky pro volající

Tato metoda je určena pro použití při práci s objekty COM, nikoli s .NET Framework objekty.This method is intended for use when working with COM objects, not with .NET Framework objects. Všechny spravované objekty, včetně těch, které jsou viditelné pro model COM (tj. jejich ComVisibleAttribute atribut true ), mají identifikátor GUID, který je vrácen GUID vlastností.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. I když metoda vrátí Type objekt, který odpovídá identifikátoru GUID pro .NET Framework objekty, nemůžete použít tento Type objekt k vytvoření instance typu voláním CreateInstance(Type) metody, jak ukazuje následující příklad.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] Místo toho GetTypeFromCLSID(Guid, String, Boolean) by měla být použita pouze k načtení identifikátoru GUID nespravovaného objektu modelu COM a výsledný Type objekt, který je předán CreateInstance(Type) metodě, musí představovat NESPRAVOVANÝ objekt modelu COM.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.

Platí pro

GetTypeFromCLSID(Guid)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID).Gets the type associated with the specified class identifier (CLSID).

public:
 static Type ^ GetTypeFromCLSID(Guid 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

Parametry

clsid
Guid

Identifikátor CLSID typu, který má být získán.The CLSID of the type to get.

Návraty

Type

System.__ComObject bez ohledu na to, zda je identifikátor CLSID platný.System.__ComObject regardless of whether the CLSID is valid.

Příklady

Následující příklad používá identifikátor CLSID objektu aplikace Microsoft Word k načtení typu modelu COM, který představuje aplikaci 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. Potom vytvoří instanci typu voláním Activator.CreateInstance metody a uzavře ji voláním metody 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

Poznámky

GetTypeFromCLSIDMetoda podporuje pozdní přístup k nespravovaným objektům modelu COM z aplikace .NET Framework, když znáte identifikátor třídy objektu 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). Identifikátor třídy pro třídy COM je definován v klíči HKEY_CLASSES_ROOT\CLSID registru.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Můžete načíst hodnotu IsCOMObject Vlastnosti k určení, zda typ vrácený touto metodou je objekt modelu COM.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tip

Můžete zavolat GetTypeFromProgID metodu pro přístup s pozdní vazbou na objekty COM, jejichž programový identifikátor (ProgID) víte.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Vytvoření instance nespravovaného objektu COM z jeho CLSID je proces se dvěma kroky:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Získejte Type objekt, který představuje __ComObject , který odpovídá identifikátoru CLSID voláním GetTypeFromCLSID metody.Get a Type object that represents the__ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Zavolejte Activator.CreateInstance(Type) metodu pro vytvoření instance objektu com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Podívejte se na příklad pro ilustraci.See the example for an illustration.

GetTypeFromCLSID(Guid)Přetížení ignoruje všechny výjimky, ke kterým může dojít při vytváření instance Type objektu založeného na clsid argumentu.The GetTypeFromCLSID(Guid) overload ignores any exception that may occur when instantiating a Type object based on the clsid argument. Všimněte si, že není vyvolána žádná výjimka, pokud clsid se v registru nenajde.Note that no exception is thrown if clsid is not found in the registry.

Poznámky pro volající

Tato metoda je určena pro použití při práci s objekty COM, nikoli s .NET Framework objekty.This method is intended for use when working with COM objects, not with .NET Framework objects. Všechny spravované objekty, včetně těch, které jsou viditelné pro model COM (tj. jejich ComVisibleAttribute atribut true ), mají identifikátor GUID, který je vrácen GUID vlastností.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. I když metoda vrátí Type objekt, který odpovídá identifikátoru GUID pro .NET Framework objekty, nemůžete použít tento Type objekt k vytvoření instance typu voláním CreateInstance(Type) metody, jak ukazuje následující příklad.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] Místo toho GetTypeFromCLSID(Guid, String, Boolean) by měla být použita pouze k načtení identifikátoru GUID nespravovaného objektu modelu COM a výsledný Type objekt, který je předán CreateInstance(Type) metodě, musí představovat NESPRAVOVANÝ objekt modelu COM.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.

Platí pro

GetTypeFromCLSID(Guid, Boolean)

Získá typ přidružený k zadanému identifikátoru třídy (CLSID), který určuje, jestli se má vyvolat výjimka, pokud při načítání typu dojde k chybě.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);
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

Parametry

clsid
Guid

Identifikátor CLSID typu, který má být získán.The CLSID of the type to get.

throwOnError
Boolean

true k vyvolání jakékoli výjimky, ke které dojde.true to throw any exception that occurs.

-nebo--or- false ignorování všech výjimek, ke kterým dojde.false to ignore any exception that occurs.

Návraty

Type

System.__ComObject bez ohledu na to, zda je identifikátor CLSID platný.System.__ComObject regardless of whether the CLSID is valid.

Příklady

Následující příklad používá identifikátor CLSID objektu aplikace Microsoft Word k načtení typu modelu COM, který představuje aplikaci 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. Potom vytvoří instanci typu voláním Activator.CreateInstance metody a uzavře ji voláním metody Application. quit .It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Výjimka je vyvolána, pokud při načítání typu dojde k chybě.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

Poznámky

GetTypeFromCLSIDMetoda podporuje pozdní přístup k nespravovaným objektům modelu COM z aplikace .NET Framework, když znáte identifikátor třídy objektu 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). Identifikátor třídy pro třídy COM je definován v klíči HKEY_CLASSES_ROOT\CLSID registru.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Můžete načíst hodnotu IsCOMObject Vlastnosti k určení, zda typ vrácený touto metodou je objekt modelu COM.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tip

Můžete zavolat GetTypeFromProgID metodu pro přístup s pozdní vazbou na objekty COM, jejichž programový identifikátor (ProgID) víte.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Vytvoření instance nespravovaného objektu COM z jeho CLSID je proces se dvěma kroky:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Získejte Type objekt, který představuje __ComObject , který odpovídá identifikátoru CLSID voláním GetTypeFromCLSID metody.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Zavolejte Activator.CreateInstance(Type) metodu pro vytvoření instance objektu com.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Podívejte se na příklad pro ilustraci.See the example for an illustration.

Výjimky, jako například OutOfMemoryException , budou vyvolány při určení true pro throwOnError , ale nebudou pro neregistrované identifikátory CLSID úspěšné.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Poznámky pro volající

Tato metoda je určena pro použití při práci s objekty COM, nikoli s .NET Framework objekty.This method is intended for use when working with COM objects, not with .NET Framework objects. Všechny spravované objekty, včetně těch, které jsou viditelné pro model COM (tj. jejich ComVisibleAttribute atribut true ), mají identifikátor GUID, který je vrácen GUID vlastností.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. I když metoda vrátí Type objekt, který odpovídá identifikátoru GUID pro .NET Framework objekty, nemůžete použít tento Type objekt k vytvoření instance typu voláním CreateInstance(Type) metody, jak ukazuje následující příklad.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] Místo toho GetTypeFromCLSID(Guid, String, Boolean) by měla být použita pouze k načtení identifikátoru GUID nespravovaného objektu modelu COM a výsledný Type objekt, který je předán CreateInstance(Type) metodě, musí představovat NESPRAVOVANÝ objekt modelu COM.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.

Platí pro