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

Определение

Возвращает тип, связанный с заданным кодом 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)

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID, позволяющий определить, будет ли выбрасываться исключение при происхождении ошибки во время загрузки типа.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)

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID.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)

Возвращает тип, связанный с заданным кодом CLSID, позволяющий определить, будет ли выбрасываться исключение в случае происхождения ошибки при загрузке типа.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)

Возвращает тип, связанный с заданным кодом 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)

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID, позволяющий определить, будет ли выбрасываться исключение при происхождении ошибки во время загрузки типа.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

Параметры

clsid
Guid Guid Guid Guid

Код CLSID извлекаемого типа.The CLSID of the type to get.

server
String String String String

Сервер, с которого должен быть загружен тип.The server from which to load the type. Если в качестве имени сервера задано значение null, этот метод автоматически перейдет к поиску на локальном компьютере.If the server name is null, this method automatically reverts to the local machine.

throwOnError
Boolean Boolean Boolean Boolean

Значение true для вызова любого возникшего исключения.true to throw any exception that occurs.

-или--or- Значение false для игнорирования всех происходящих исключений.false to ignore any exception that occurs.

Возвраты

System.__ComObject вне зависимости от того, допустим ли код CLSID.System.__ComObject regardless of whether the CLSID is valid.

Примеры

В следующем примере используется идентификатор CLSID Microsoft Word объекта приложения для получения типа COM, который представляет экземпляр приложения Microsoft Word с сервера с именем 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. Затем код создает тип путем вызова Activator.CreateInstance метод и закрывает его путем вызова Application.Quit метод.It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Исключение возникает в том случае, если произошла ошибка при загрузке типа.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

Комментарии

GetTypeFromCLSID Метод поддерживает доступ с поздним связыванием неуправляемый COM-объекты из приложений .NET Framework, когда вы знаете идентификатор 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). Идентификатор класса для классов COM определяется в разделе реестра HKEY_CLASSES_ROOT\CLSID.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип возвращаемого этим методом COM-объекта.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Совет

Вы можете вызвать GetTypeFromProgID метод для доступа с поздним связыванием для COM объектов которого программный идентификатор (ProgID) вы знаете.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Создание экземпляра неуправляемый COM-объект, из идентификатора CLSID — это двухэтапный процесс:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Получить Type , представляющий __ComObject , соответствующий идентификатор CLSID, вызвав GetTypeFromCLSID метод.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Вызовите Activator.CreateInstance(Type) метод для создания экземпляра COM-объекта.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Такие исключения, как OutOfMemoryException возникает при указании true для throwOnError, но не заканчивается сбоем для незарегистрированных идентификаторов CLSID.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Примечания для тех, кто вызывает этот метод

Этот метод предназначен для использования при работе с COM-объектами, а не с объектами .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Все управляемые объекты, включая те, которые являются видимыми для COM (то есть их ComVisibleAttribute атрибут true) иметь идентификатор GUID, который возвращается GUID свойство.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. Несмотря на то что GetTypeFromCLSID(Guid, String, Boolean) возвращает Type объект, соответствующий идентификатор GUID для конкретного управляемого объекта, нельзя использовать этот Type объекта для создания экземпляра типа путем вызова CreateInstance(Type) метода, как приведенный ниже Показывает.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] Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения GUID неуправляемый объект COM и полученный в результате Type объект, который передается CreateInstance(Type) метод должен представлять неуправляемый 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.

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

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID.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

Параметры

clsid
Guid Guid Guid Guid

Код CLSID извлекаемого типа.The CLSID of the type to get.

server
String String String String

Сервер, с которого должен быть загружен тип.The server from which to load the type. Если в качестве имени сервера задано значение null, этот метод автоматически перейдет к поиску на локальном компьютере.If the server name is null, this method automatically reverts to the local machine.

Возвраты

System.__ComObject вне зависимости от того, допустим ли код CLSID.System.__ComObject regardless of whether the CLSID is valid.

Примеры

В следующем примере используется идентификатор CLSID Microsoft Word объекта приложения для получения типа COM, который представляет экземпляр приложения Microsoft Word с сервера с именем 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. Затем код создает тип путем вызова Activator.CreateInstance метод и закрывает его путем вызова 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

Комментарии

GetTypeFromCLSID Метод поддерживает доступ с поздним связыванием неуправляемый COM-объекты из приложений .NET Framework, когда вы знаете идентификатор 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). Идентификатор класса для классов COM определяется в разделе реестра HKEY_CLASSES_ROOT\CLSID.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип возвращаемого этим методом COM-объекта.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Совет

Вы можете вызвать GetTypeFromProgID метод для доступа с поздним связыванием для COM объектов которого программный идентификатор (ProgID) вы знаете.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Создание экземпляра неуправляемый COM-объект, из идентификатора CLSID — это двухэтапный процесс:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Получить Type , представляющий __ComObject , соответствующий идентификатор CLSID, вызвав GetTypeFromCLSID метод.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Вызовите Activator.CreateInstance(Type) метод для создания экземпляра COM-объекта.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

Примечания для тех, кто вызывает этот метод

Этот метод предназначен для использования при работе с COM-объектами, а не с объектами .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Все управляемые объекты, включая те, которые являются видимыми для COM (то есть их ComVisibleAttribute атрибут true) иметь идентификатор GUID, который возвращается GUID свойство.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. Несмотря на то, что метод возвращает Type объектов, соответствующий идентификатор GUID для платформы .NET Framework, нельзя использовать этот Type объекта для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.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] Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения GUID неуправляемый объект COM и полученный в результате Type объект, который передается CreateInstance(Type) метод должен представлять неуправляемый 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.

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

Возвращает тип, связанный с заданным кодом CLSID, позволяющий определить, будет ли выбрасываться исключение в случае происхождения ошибки при загрузке типа.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

Параметры

clsid
Guid Guid Guid Guid

Код CLSID извлекаемого типа.The CLSID of the type to get.

throwOnError
Boolean Boolean Boolean Boolean

Значение true для вызова любого возникшего исключения.true to throw any exception that occurs.

-или--or- Значение false для игнорирования всех происходящих исключений.false to ignore any exception that occurs.

Возвраты

System.__ComObject вне зависимости от того, допустим ли код CLSID.System.__ComObject regardless of whether the CLSID is valid.

Примеры

В следующем примере используется идентификатор CLSID Microsoft Word объекта приложения для получения типа COM, который представляет экземпляр приложения 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. Затем код создает тип путем вызова Activator.CreateInstance метод и закрывает его путем вызова Application.Quit метод.It then instantiates the type by calling the Activator.CreateInstance method, and closes it by calling the Application.Quit method. Исключение возникает в том случае, если произошла ошибка при загрузке типа.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

Комментарии

GetTypeFromCLSID Метод поддерживает доступ с поздним связыванием неуправляемый COM-объекты из приложений .NET Framework, когда вы знаете идентификатор 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). Идентификатор класса для классов COM определяется в разделе реестра HKEY_CLASSES_ROOT\CLSID.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип возвращаемого этим методом COM-объекта.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Совет

Вы можете вызвать GetTypeFromProgID метод для доступа с поздним связыванием для COM объектов которого программный идентификатор (ProgID) вы знаете.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Создание экземпляра неуправляемый COM-объект, из идентификатора CLSID — это двухэтапный процесс:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Получить Type , представляющий __ComObject , соответствующий идентификатор CLSID, вызвав GetTypeFromCLSID метод.Get a Type object that represents the __ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Вызовите Activator.CreateInstance(Type) метод для создания экземпляра COM-объекта.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

См. пример для иллюстрации.See the example for an illustration.

Такие исключения, как OutOfMemoryException возникает при указании true для throwOnError, но не заканчивается сбоем для незарегистрированных идентификаторов CLSID.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

Примечания для тех, кто вызывает этот метод

Этот метод предназначен для использования при работе с COM-объектами, а не с объектами .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Все управляемые объекты, включая те, которые являются видимыми для COM (то есть их ComVisibleAttribute атрибут true) иметь идентификатор GUID, который возвращается GUID свойство.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. Несмотря на то, что метод возвращает Type объектов, соответствующий идентификатор GUID для платформы .NET Framework, нельзя использовать этот Type объекта для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.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] Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения GUID неуправляемый объект COM и полученный в результате Type объект, который передается CreateInstance(Type) метод должен представлять неуправляемый 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.

GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid) GetTypeFromCLSID(Guid)

Возвращает тип, связанный с заданным кодом 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

Параметры

clsid
Guid Guid Guid Guid

Код CLSID извлекаемого типа.The CLSID of the type to get.

Возвраты

System.__ComObject вне зависимости от того, допустим ли код CLSID.System.__ComObject regardless of whether the CLSID is valid.

Примеры

В следующем примере используется идентификатор CLSID Microsoft Word объекта приложения для получения типа COM, который представляет экземпляр приложения 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. Затем код создает тип путем вызова Activator.CreateInstance метод и закрывает его путем вызова 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

Комментарии

GetTypeFromCLSID Метод поддерживает доступ с поздним связыванием неуправляемый COM-объекты из приложений .NET Framework, когда вы знаете идентификатор 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). Идентификатор класса для классов COM определяется в разделе реестра HKEY_CLASSES_ROOT\CLSID.The class identifier for COM classes is defined in the HKEY_CLASSES_ROOT\CLSID key of the registry. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип возвращаемого этим методом COM-объекта.You can retrieve the value of the IsCOMObject property to determine whether the type returned by this method is a COM object.

Совет

Вы можете вызвать GetTypeFromProgID метод для доступа с поздним связыванием для COM объектов которого программный идентификатор (ProgID) вы знаете.You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

Создание экземпляра неуправляемый COM-объект, из идентификатора CLSID — это двухэтапный процесс:Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. Получить Type , представляющий__ComObject , соответствующий идентификатор CLSID, вызвав GetTypeFromCLSID метод.Get a Type object that represents the__ComObject that corresponds to the CLSID by calling the GetTypeFromCLSID method.

  2. Вызовите Activator.CreateInstance(Type) метод для создания экземпляра COM-объекта.Call the Activator.CreateInstance(Type) method to instantiate the COM object.

См. пример для иллюстрации.See the example for an illustration.

GetTypeFromCLSID(Guid) Перегрузки не обрабатывает любое исключение, которое возникает при создании экземпляра Type на основе clsid аргумент.The GetTypeFromCLSID(Guid) overload ignores any exception that may occur when instantiating a Type object based on the clsid argument. Обратите внимание, что исключение не вызывается в том случае, если clsid не найден в реестре.Note that no exception is thrown if clsid is not found in the registry.

Примечания для тех, кто вызывает этот метод

Этот метод предназначен для использования при работе с COM-объектами, а не с объектами .NET Framework.This method is intended for use when working with COM objects, not with .NET Framework objects. Все управляемые объекты, включая те, которые являются видимыми для COM (то есть их ComVisibleAttribute атрибут true) иметь идентификатор GUID, который возвращается GUID свойство.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. Несмотря на то, что метод возвращает Type объектов, соответствующий идентификатор GUID для платформы .NET Framework, нельзя использовать этот Type объекта для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.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] Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения GUID неуправляемый объект COM и полученный в результате Type объект, который передается CreateInstance(Type) метод должен представлять неуправляемый 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.

Применяется к