Type.GetTypeFromCLSID Метод

Определение

Возвращает тип, связанный с заданным кодом CLSID.

Перегрузки

GetTypeFromCLSID(Guid, String, Boolean)

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

GetTypeFromCLSID(Guid, String)

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID.

GetTypeFromCLSID(Guid, Boolean)

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

GetTypeFromCLSID(Guid)

Возвращает тип, связанный с заданным кодом CLSID.

GetTypeFromCLSID(Guid, String, Boolean)

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

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, System::String ^ server, bool throwOnError);
public static Type? GetTypeFromCLSID (Guid clsid, string? server, bool throwOnError);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
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
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetTypeFromCLSID : Guid * string * bool -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, server As String, throwOnError As Boolean) As Type

Параметры

clsid
Guid

Код CLSID извлекаемого типа.

server
String

Сервер, с которого должен быть загружен тип. Если в качестве имени сервера задано значение null, этот метод автоматически перейдет к поиску на локальном компьютере.

throwOnError
Boolean

Значение true для вызова любого возникшего исключения.

-или- Значение false для игнорирования всех происходящих исключений.

Возвращаемое значение

Type

System.__ComObject вне зависимости от того, допустим ли код CLSID.

Атрибуты

Примеры

в следующем примере используется CLSID объекта приложения Microsoft Word для получения типа COM, представляющего Microsoft Word приложение с сервера с именем computer17.central.contoso.com. Затем он создает экземпляр типа, вызывая Activator.CreateInstance метод, и закрывает его, вызывая метод Application. Quit . При возникновении ошибки при загрузке типа возникает исключение.

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 приложений, если известно, что идентификатор класса (CLSID) com-объекта. Идентификатор класса для классов COM определяется в HKEY_CLASSES_ROOT\CLSID разделе реестра. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип, возвращаемый этим методом, COM-объектом.

Совет

Можно вызвать GetTypeFromProgID метод для доступа с поздней привязкой к COM-объектам, известный программному идентификатору (ProgID).

Создание экземпляра неуправляемого COM-объекта из его CLSID состоит из двух этапов:

  1. Получите Type объект, представляющий __ComObject идентификатор, соответствующий CLSID, вызвав GetTypeFromCLSID метод.

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

Исключения, такие как OutOfMemoryException , будут выдаваться при указании true для throwOnError , но не будут завершаться ошибкой для незарегистрированных идентификаторов CLSID.

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

этот метод предназначен для использования при работе с COM-объектами, а не с платформа .NET Framework объектами. Все управляемые объекты, включая те, которые видимы для модели COM (то есть их ComVisibleAttribute атрибуты имеют значение true ), имеют идентификатор GUID, возвращаемый GUID свойством. Несмотря на то, что GetTypeFromCLSID(Guid, String, Boolean) метод возвращает Type объект, соответствующий идентификатору GUID для определенного управляемого объекта, нельзя использовать этот Type объект для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.

Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения идентификатора GUID неуправляемого COM-объекта, а результирующий Type объект, передаваемый в CreateInstance(Type) метод, должен представлять неуправляемый COM-объект.

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

GetTypeFromCLSID(Guid, String)

Возвращает с указанного сервера тип, связанный с заданным кодом CLSID.

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, System::String ^ server);
public static Type? GetTypeFromCLSID (Guid clsid, string? server);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static Type? GetTypeFromCLSID (Guid clsid, string? server);
public static Type GetTypeFromCLSID (Guid clsid, string server);
static member GetTypeFromCLSID : Guid * string -> Type
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetTypeFromCLSID : Guid * string -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, server As String) As Type

Параметры

clsid
Guid

Код CLSID извлекаемого типа.

server
String

Сервер, с которого должен быть загружен тип. Если в качестве имени сервера задано значение null, этот метод автоматически перейдет к поиску на локальном компьютере.

Возвращаемое значение

Type

System.__ComObject вне зависимости от того, допустим ли код CLSID.

Атрибуты

Примеры

в следующем примере используется CLSID объекта приложения Microsoft Word для получения типа COM, представляющего Microsoft Word приложение с сервера с именем computer17.central.contoso.com. Затем он создает экземпляр типа, вызывая Activator.CreateInstance метод, и закрывает его, вызывая метод Application. Quit .

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 приложений, если известно, что идентификатор класса (CLSID) com-объекта. Идентификатор класса для классов COM определяется в HKEY_CLASSES_ROOT\CLSID разделе реестра. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип, возвращаемый этим методом, COM-объектом.

Совет

Можно вызвать GetTypeFromProgID метод для доступа с поздней привязкой к COM-объектам, известный программному идентификатору (ProgID).

Создание экземпляра неуправляемого COM-объекта из его CLSID состоит из двух этапов:

  1. Получите Type объект, представляющий __ComObject идентификатор, соответствующий CLSID, вызвав GetTypeFromCLSID метод.

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

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

этот метод предназначен для использования при работе с COM-объектами, а не с платформа .NET Framework объектами. Все управляемые объекты, включая те, которые видимы для модели COM (то есть их ComVisibleAttribute атрибуты имеют значение true ), имеют идентификатор GUID, возвращаемый GUID свойством. несмотря на то, что метод возвращает Type объект, соответствующий идентификатору GUID для объектов платформа .NET Framework, этот объект нельзя использовать Type для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.

Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения идентификатора GUID неуправляемого COM-объекта, а результирующий Type объект, передаваемый в CreateInstance(Type) метод, должен представлять неуправляемый COM-объект.

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

GetTypeFromCLSID(Guid, Boolean)

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

public:
 static Type ^ GetTypeFromCLSID(Guid clsid, bool throwOnError);
public static Type? GetTypeFromCLSID (Guid clsid, bool throwOnError);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static Type? GetTypeFromCLSID (Guid clsid, bool throwOnError);
public static Type GetTypeFromCLSID (Guid clsid, bool throwOnError);
static member GetTypeFromCLSID : Guid * bool -> Type
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetTypeFromCLSID : Guid * bool -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid, throwOnError As Boolean) As Type

Параметры

clsid
Guid

Код CLSID извлекаемого типа.

throwOnError
Boolean

Значение true для вызова любого возникшего исключения.

-или- Значение false для игнорирования всех происходящих исключений.

Возвращаемое значение

Type

System.__ComObject вне зависимости от того, допустим ли код CLSID.

Атрибуты

Примеры

в следующем примере используется идентификатор CLSID объекта приложения Microsoft Word для получения типа COM, представляющего приложение Microsoft Word. Затем он создает экземпляр типа, вызывая Activator.CreateInstance метод, и закрывает его, вызывая метод Application. Quit . При возникновении ошибки при загрузке типа возникает исключение.

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 приложений, если известно, что идентификатор класса (CLSID) com-объекта. Идентификатор класса для классов COM определяется в HKEY_CLASSES_ROOT\CLSID разделе реестра. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип, возвращаемый этим методом, COM-объектом.

Совет

Можно вызвать GetTypeFromProgID метод для доступа с поздней привязкой к COM-объектам, известный программному идентификатору (ProgID).

Создание экземпляра неуправляемого COM-объекта из его CLSID состоит из двух этапов:

  1. Получите Type объект, представляющий __ComObject идентификатор, соответствующий CLSID, вызвав GetTypeFromCLSID метод.

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

См. пример для иллюстрации.

Исключения, такие как OutOfMemoryException , будут выдаваться при указании true для throwOnError , но не будут завершаться ошибкой для незарегистрированных идентификаторов CLSID.

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

этот метод предназначен для использования при работе с COM-объектами, а не с платформа .NET Framework объектами. Все управляемые объекты, включая те, которые видимы для модели COM (то есть их ComVisibleAttribute атрибуты имеют значение true ), имеют идентификатор GUID, возвращаемый GUID свойством. несмотря на то, что метод возвращает Type объект, соответствующий идентификатору GUID для объектов платформа .NET Framework, этот объект нельзя использовать Type для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.

Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения идентификатора GUID неуправляемого COM-объекта, а результирующий Type объект, передаваемый в CreateInstance(Type) метод, должен представлять неуправляемый COM-объект.

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

GetTypeFromCLSID(Guid)

Возвращает тип, связанный с заданным кодом CLSID.

public:
 static Type ^ GetTypeFromCLSID(Guid clsid);
public static Type? GetTypeFromCLSID (Guid clsid);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static Type? GetTypeFromCLSID (Guid clsid);
public static Type GetTypeFromCLSID (Guid clsid);
static member GetTypeFromCLSID : Guid -> Type
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetTypeFromCLSID : Guid -> Type
Public Shared Function GetTypeFromCLSID (clsid As Guid) As Type

Параметры

clsid
Guid

Код CLSID извлекаемого типа.

Возвращаемое значение

Type

System.__ComObject вне зависимости от того, допустим ли код CLSID.

Атрибуты

Примеры

в следующем примере используется идентификатор CLSID объекта приложения Microsoft Word для получения типа COM, представляющего приложение Microsoft Word. Затем он создает экземпляр типа, вызывая Activator.CreateInstance метод, и закрывает его, вызывая метод Application. Quit .

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 приложений, если известно, что идентификатор класса (CLSID) com-объекта. Идентификатор класса для классов COM определяется в HKEY_CLASSES_ROOT\CLSID разделе реестра. Можно получить значение IsCOMObject свойства, чтобы определить, является ли тип, возвращаемый этим методом, COM-объектом.

Совет

Можно вызвать GetTypeFromProgID метод для доступа с поздней привязкой к COM-объектам, известный программному идентификатору (ProgID).

Создание экземпляра неуправляемого COM-объекта из его CLSID состоит из двух этапов:

  1. Получите Type объект, представляющий __ComObject идентификатор, соответствующий CLSID, вызвав GetTypeFromCLSID метод.

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

См. пример для иллюстрации.

GetTypeFromCLSID(Guid)Перегрузка игнорирует все исключения, которые могут возникнуть при создании экземпляра Type объекта на основе clsid аргумента. Обратите внимание, что исключение не возникает, если clsid не найдено в реестре.

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

этот метод предназначен для использования при работе с COM-объектами, а не с платформа .NET Framework объектами. Все управляемые объекты, включая те, которые видимы для модели COM (то есть их ComVisibleAttribute атрибуты имеют значение true ), имеют идентификатор GUID, возвращаемый GUID свойством. несмотря на то, что метод возвращает Type объект, соответствующий идентификатору GUID для объектов платформа .NET Framework, этот объект нельзя использовать Type для создания экземпляра типа путем вызова CreateInstance(Type) метода, как показано в следующем примере.

Вместо этого GetTypeFromCLSID(Guid, String, Boolean) следует использовать только для получения идентификатора GUID неуправляемого COM-объекта, а результирующий Type объект, передаваемый в CreateInstance(Type) метод, должен представлять неуправляемый COM-объект.

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