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

Definition

Ruft den Typ ab, dem die angegebene Klassen-ID (CLSID) zugeordnet ist.Gets the type associated with the specified class identifier (CLSID).

Überlädt

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

Ruft den Typ, dem die angegebene Klassen-ID (CLSID) zugeordnet ist, vom angegebenen Server ab. Dabei wird angegeben, ob bei Auftreten eines Fehlers beim Laden des Typs eine Ausnahme ausgelöst werden soll.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)

Ruft den Typ, dem die angegebene Klassen-ID (CLSID) zugeordnet ist, vom angegebenen Server ab.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)

Ruft den Typ ab, dem die angegebene Klassen-ID (CLSID) zugeordnet ist. Dabei wird angegeben, ob bei Auftreten eines Fehlers beim Laden des Typs eine Ausnahme ausgelöst werden soll.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)

Ruft den Typ ab, dem die angegebene Klassen-ID (CLSID) zugeordnet ist.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)

Ruft den Typ, dem die angegebene Klassen-ID (CLSID) zugeordnet ist, vom angegebenen Server ab. Dabei wird angegeben, ob bei Auftreten eines Fehlers beim Laden des Typs eine Ausnahme ausgelöst werden soll.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

Parameter

clsid
Guid Guid Guid Guid

Die CLSID des abzurufenden Typs.The CLSID of the type to get.

server
String String String String

Der Server, von dem der Typ geladen werden soll.The server from which to load the type. Wenn der Servername nullist, wird diese Methode automatisch auf den lokalen Computer zurückgesetzt.If the server name is null, this method automatically reverts to the local machine.

throwOnError
Boolean Boolean Boolean Boolean

true, um mögliche Ausnahmen auszulösen.true to throw any exception that occurs.

- oder --or- false, um Ausnahmen zu ignorieren.false to ignore any exception that occurs.

Gibt zurück

System.__ComObject unabhängig von der Gültigkeit der CLSID.System.__ComObject regardless of whether the CLSID is valid.

Beispiele

Im folgenden Beispiel wird die CLSID des Microsoft Word- Anwendungs Objekts zum Abrufen eines COM-Typs verwendet, der die Microsoft Word-Anwendung von einem Server mit dem Namen computer17.Central.contoso.com darstellt.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. Anschließend wird der Typ durch Aufrufen der Activator.CreateInstance -Methode instanziiert und durch Aufrufen der Application. Quit -Methode geschlossen.It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Eine Ausnahme wird ausgelöst, wenn beim Laden des Typs ein Fehler auftritt.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

Hinweise

Die GetTypeFromCLSID -Methode unterstützt den spät gebundenen Zugriff auf nicht verwaltete COM-Objekte von .NET Framework-apps, wenn Sie den Klassen Bezeichner (CLSID) des COM-Objekts kennen.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). Der Klassen Bezeichner für COM-Klassen wird im HKEY_CLASSES_ROOT\CLSID-Schlüssel der Registrierung definiert.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Sie können den Wert der IsCOMObject -Eigenschaft abrufen, um zu bestimmen, ob der von dieser Methode zurückgegebene Typ ein COM-Objekt ist.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tipp

Sie können die- GetTypeFromProgID Methode für den spät gebundenen Zugriff auf COM-Objekte aufrufen, deren Programm Bezeichner (ProgID) Sie kennen.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Das Instanziieren eines nicht verwalteten COM-Objekts aus seiner CLSID ist ein zweistufiger Prozess:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Rufen Sie Type ein-Objekt ab __ComObject , das die darstellt, die der CLSID GetTypeFromCLSID entspricht, indem Sie die-Methode aufrufen.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Ruft die Activator.CreateInstance(Type) -Methode auf, um das COM-Objekt zu instanziieren.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Ausnahmen wie OutOfMemoryException werden bei der Angabe true von für throwOnErrorausgelöst, aber nicht für nicht registrierte CLSIDs.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Hinweise für Aufrufer

Diese Methode ist für die Verwendung beim Arbeiten mit COM-Objekten gedacht, nicht für .NET Framework-Objekte.This method is intended for use when working with COM objects, not with .NET Framework objects. Alle verwalteten Objekte, einschließlich derjenigen, die für com sichtbar sind (d. h ComVisibleAttribute ., trueihr-Attribut ist), weisen eine GUID GUID auf, die von der-Eigenschaft zurückgegeben wird.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. Obwohl die GetTypeFromCLSID(Guid, String, Boolean) -Methode ein Type -Objekt zurückgibt, das der GUID für ein bestimmtes verwaltetes Objekt entspricht, Type können Sie dieses Objekt nicht verwenden, um eine CreateInstance(Type) Typinstanz zu erstellen, indem Sie die-Methode aufrufen, wie im folgenden Beispiel gezeigt. Tanz.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. gettypeer fromclsid # 11] [! Code-vbSystem. Type. gettypinfromclsid # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] Stattdessen sollte nur zum Abrufen der GUID eines nicht verwalteten COM-Objekts verwendet werden, und das resultierende Type -Objekt, das an die CreateInstance(Type) -Methode übermittelt wird, muss ein nicht verwaltetes COM-Objekt darstellen. GetTypeFromCLSID(Guid, String, Boolean)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)

Ruft den Typ, dem die angegebene Klassen-ID (CLSID) zugeordnet ist, vom angegebenen Server ab.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

Parameter

clsid
Guid Guid Guid Guid

Die CLSID des abzurufenden Typs.The CLSID of the type to get.

server
String String String String

Der Server, von dem der Typ geladen werden soll.The server from which to load the type. Wenn der Servername null ist, wird diese Methode automatisch auf den lokalen Computer zurückgesetzt.If the server name is null, this method automatically reverts to the local machine.

Gibt zurück

System.__ComObject unabhängig von der Gültigkeit der CLSID.System.__ComObject regardless of whether the CLSID is valid.

Beispiele

Im folgenden Beispiel wird die CLSID des Microsoft Word- Anwendungs Objekts zum Abrufen eines COM-Typs verwendet, der die Microsoft Word-Anwendung von einem Server mit dem Namen computer17.Central.contoso.com darstellt.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. Anschließend wird der Typ durch Aufrufen der Activator.CreateInstance -Methode instanziiert und durch Aufrufen der Application. Quit -Methode geschlossen.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

Hinweise

Die GetTypeFromCLSID -Methode unterstützt den spät gebundenen Zugriff auf nicht verwaltete COM-Objekte von .NET Framework-apps, wenn Sie den Klassen Bezeichner (CLSID) des COM-Objekts kennen.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). Der Klassen Bezeichner für COM-Klassen wird im HKEY_CLASSES_ROOT\CLSID-Schlüssel der Registrierung definiert.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Sie können den Wert der IsCOMObject -Eigenschaft abrufen, um zu bestimmen, ob der von dieser Methode zurückgegebene Typ ein COM-Objekt ist.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tipp

Sie können die- GetTypeFromProgID Methode für den spät gebundenen Zugriff auf COM-Objekte aufrufen, deren Programm Bezeichner (ProgID) Sie kennen.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Das Instanziieren eines nicht verwalteten COM-Objekts aus seiner CLSID ist ein zweistufiger Prozess:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Rufen Sie Type ein-Objekt ab __ComObject , das die darstellt, die der CLSID GetTypeFromCLSID entspricht, indem Sie die-Methode aufrufen.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Ruft die Activator.CreateInstance(Type) -Methode auf, um das COM-Objekt zu instanziieren.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Hinweise für Aufrufer

Diese Methode ist für die Verwendung beim Arbeiten mit COM-Objekten gedacht, nicht für .NET Framework-Objekte.This method is intended for use when working with COM objects, not with .NET Framework objects. Alle verwalteten Objekte, einschließlich derjenigen, die für com sichtbar sind (d. h ComVisibleAttribute ., trueihr-Attribut ist), weisen eine GUID GUID auf, die von der-Eigenschaft zurückgegeben wird.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. Obwohl die-Methode ein Type -Objekt zurückgibt, das der GUID für .NET Framework-Objekte entspricht, Type können Sie dieses Objekt nicht verwenden, um eine CreateInstance(Type) Typinstanz zu erstellen, indem Sie die-Methode aufrufen, wie im folgenden Beispiel gezeigt.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. gettypeer fromclsid # 11] [! Code-vbSystem. Type. gettypinfromclsid # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] Stattdessen sollte nur zum Abrufen der GUID eines nicht verwalteten COM-Objekts verwendet werden, und das resultierende Type -Objekt, das an die CreateInstance(Type) -Methode übermittelt wird, muss ein nicht verwaltetes COM-Objekt darstellen. GetTypeFromCLSID(Guid, String, Boolean)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)

Ruft den Typ ab, dem die angegebene Klassen-ID (CLSID) zugeordnet ist. Dabei wird angegeben, ob bei Auftreten eines Fehlers beim Laden des Typs eine Ausnahme ausgelöst werden soll.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

Parameter

clsid
Guid Guid Guid Guid

Die CLSID des abzurufenden Typs.The CLSID of the type to get.

throwOnError
Boolean Boolean Boolean Boolean

true, um mögliche Ausnahmen auszulösen.true to throw any exception that occurs.

- oder --or- false, um Ausnahmen zu ignorieren.false to ignore any exception that occurs.

Gibt zurück

System.__ComObject unabhängig von der Gültigkeit der CLSID.System.__ComObject regardless of whether the CLSID is valid.

Beispiele

Im folgenden Beispiel wird die CLSID des Microsoft Word- Anwendungs Objekts zum Abrufen eines COM-Typs verwendet, der die Microsoft Word-Anwendung darstellt.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application. Anschließend wird der Typ durch Aufrufen der Activator.CreateInstance -Methode instanziiert und durch Aufrufen der Application. Quit -Methode geschlossen.It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Eine Ausnahme wird ausgelöst, wenn beim Laden des Typs ein Fehler auftritt.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

Hinweise

Die GetTypeFromCLSID -Methode unterstützt den spät gebundenen Zugriff auf nicht verwaltete COM-Objekte von .NET Framework-apps, wenn Sie den Klassen Bezeichner (CLSID) des COM-Objekts kennen.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). Der Klassen Bezeichner für COM-Klassen wird im HKEY_CLASSES_ROOT\CLSID-Schlüssel der Registrierung definiert.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Sie können den Wert der IsCOMObject -Eigenschaft abrufen, um zu bestimmen, ob der von dieser Methode zurückgegebene Typ ein COM-Objekt ist.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tipp

Sie können die- GetTypeFromProgID Methode für den spät gebundenen Zugriff auf COM-Objekte aufrufen, deren Programm Bezeichner (ProgID) Sie kennen.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Das Instanziieren eines nicht verwalteten COM-Objekts aus seiner CLSID ist ein zweistufiger Prozess:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Rufen Sie Type ein-Objekt ab __ComObject , das die darstellt, die der CLSID GetTypeFromCLSID entspricht, indem Sie die-Methode aufrufen.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Ruft die Activator.CreateInstance(Type) -Methode auf, um das COM-Objekt zu instanziieren.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Eine Abbildung finden Sie im Beispiel.See the example for an illustration.

Ausnahmen wie OutOfMemoryException werden bei der Angabe true von für throwOnErrorausgelöst, aber nicht für nicht registrierte CLSIDs.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Hinweise für Aufrufer

Diese Methode ist für die Verwendung beim Arbeiten mit COM-Objekten gedacht, nicht für .NET Framework-Objekte.This method is intended for use when working with COM objects, not with .NET Framework objects. Alle verwalteten Objekte, einschließlich derjenigen, die für com sichtbar sind (d. h ComVisibleAttribute ., trueihr-Attribut ist), weisen eine GUID GUID auf, die von der-Eigenschaft zurückgegeben wird.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. Obwohl die-Methode ein Type -Objekt zurückgibt, das der GUID für .NET Framework-Objekte entspricht, Type können Sie dieses Objekt nicht verwenden, um eine CreateInstance(Type) Typinstanz zu erstellen, indem Sie die-Methode aufrufen, wie im folgenden Beispiel gezeigt.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. gettypeer fromclsid # 11] [! Code-vbSystem. Type. gettypinfromclsid # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] Stattdessen sollte nur zum Abrufen der GUID eines nicht verwalteten COM-Objekts verwendet werden, und das resultierende Type -Objekt, das an die CreateInstance(Type) -Methode übermittelt wird, muss ein nicht verwaltetes COM-Objekt darstellen. GetTypeFromCLSID(Guid, String, Boolean)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)

Ruft den Typ ab, dem die angegebene Klassen-ID (CLSID) zugeordnet ist.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

Parameter

clsid
Guid Guid Guid Guid

Die CLSID des abzurufenden Typs.The CLSID of the type to get.

Gibt zurück

System.__ComObject unabhängig von der Gültigkeit der CLSID.System.__ComObject regardless of whether the CLSID is valid.

Beispiele

Im folgenden Beispiel wird die CLSID des Microsoft Word- Anwendungs Objekts zum Abrufen eines COM-Typs verwendet, der die Microsoft Word-Anwendung darstellt.The following example uses the CLSID of the Microsoft Word Application object to retrieve a COM type that represents the Microsoft Word application. Anschließend wird der Typ durch Aufrufen der Activator.CreateInstance -Methode instanziiert und durch Aufrufen der Application. Quit -Methode geschlossen.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

Hinweise

Die GetTypeFromCLSID -Methode unterstützt den spät gebundenen Zugriff auf nicht verwaltete COM-Objekte von .NET Framework-apps, wenn Sie den Klassen Bezeichner (CLSID) des COM-Objekts kennen.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). Der Klassen Bezeichner für COM-Klassen wird im HKEY_CLASSES_ROOT\CLSID-Schlüssel der Registrierung definiert.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Sie können den Wert der IsCOMObject -Eigenschaft abrufen, um zu bestimmen, ob der von dieser Methode zurückgegebene Typ ein COM-Objekt ist.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Tipp

Sie können die- GetTypeFromProgID Methode für den spät gebundenen Zugriff auf COM-Objekte aufrufen, deren Programm Bezeichner (ProgID) Sie kennen.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Das Instanziieren eines nicht verwalteten COM-Objekts aus seiner CLSID ist ein zweistufiger Prozess:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Rufen Sie Type ein-Objekt ab__ComObject , das die darstellt, die der CLSID GetTypeFromCLSID entspricht, indem Sie die-Methode aufrufen.Get a Type object that represents the__ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Ruft die Activator.CreateInstance(Type) -Methode auf, um das COM-Objekt zu instanziieren.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Eine Abbildung finden Sie im Beispiel.See the example for an illustration.

Die GetTypeFromCLSID(Guid) -Überladung ignoriert alle Ausnahmen, die beim Instanziieren Type eines-Objekts auf clsid Grundlage des Arguments auftreten können.The GetTypeFromCLSID(Guid) overload ignores any exception that may occur when instantiating a Type object based on the clsid argument. Beachten Sie, dass keine Ausnahme ausgelöst clsid wird, wenn nicht in der Registrierung gefunden wurde.Note that no exception is thrown if clsid is not found in the registry.

Hinweise für Aufrufer

Diese Methode ist für die Verwendung beim Arbeiten mit COM-Objekten gedacht, nicht für .NET Framework-Objekte.This method is intended for use when working with COM objects, not with .NET Framework objects. Alle verwalteten Objekte, einschließlich derjenigen, die für com sichtbar sind (d. h ComVisibleAttribute ., trueihr-Attribut ist), weisen eine GUID GUID auf, die von der-Eigenschaft zurückgegeben wird.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. Obwohl die-Methode ein Type -Objekt zurückgibt, das der GUID für .NET Framework-Objekte entspricht, Type können Sie dieses Objekt nicht verwenden, um eine CreateInstance(Type) Typinstanz zu erstellen, indem Sie die-Methode aufrufen, wie im folgenden Beispiel gezeigt.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. gettypeer fromclsid # 11] [! Code-vbSystem. Type. gettypinfromclsid # 11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] Stattdessen sollte nur zum Abrufen der GUID eines nicht verwalteten COM-Objekts verwendet werden, und das resultierende Type -Objekt, das an die CreateInstance(Type) -Methode übermittelt wird, muss ein nicht verwaltetes COM-Objekt darstellen. GetTypeFromCLSID(Guid, String, Boolean)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.

Gilt für: