Type.GetTypeFromCLSID 메서드

정의

지정된 CLSID(클래스 식별자)와 연관된 형식을 가져옵니다.Gets the type associated with the specified class identifier (CLSID).

오버로드

GetTypeFromCLSID(Guid, String, Boolean)

지정된 CLSID(클래스 식별자)와 연관된 형식을 지정된 서버에서 가져오고 형식을 로드하는 동안 오류가 발생하면 예외를 throw할지를 지정합니다.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)

지정된 CLSID(클래스 식별자)와 연관된 형식을 지정된 서버에서 가져옵니다.Gets the type associated with the specified class identifier (CLSID) from the specified server.

GetTypeFromCLSID(Guid, Boolean)

지정된 CLSID(클래스 식별자)와 연관된 형식을 가져오고 형식을 로드하는 동안 오류가 발생하면 예외를 throw할지를 지정합니다.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)

지정된 CLSID(클래스 식별자)와 연관된 형식을 가져옵니다.Gets the type associated with the specified class identifier (CLSID).

GetTypeFromCLSID(Guid, String, Boolean)

지정된 CLSID(클래스 식별자)와 연관된 형식을 지정된 서버에서 가져오고 형식을 로드하는 동안 오류가 발생하면 예외를 throw할지를 지정합니다.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

가져올 형식의 CLSID입니다.The CLSID of the type to get.

server
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

발생하는 예외를 모두 throw하려면 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.

예제

다음 예제에서는 Microsoft Word의 CLSID 애플리케이션 개체 computer17.central.contoso.com 라는 서버에서 Microsoft Word 애플리케이션을 나타내는 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. 형식을 로드 하는 동안 오류가 발생 하면 예외가 throw 됩니다.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.

CLSID에서 관리 되지 않는 COM 개체를 인스턴스화하는 2 단계 프로세스입니다.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 지정 하는 경우 throw 됩니다 true 에 대 한 throwOnError, 하지만 등록 되지 않은 Clsid에 대 한 실패 하지 것입니다.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

호출자 참고

이 메서드는.NET Framework 개체와 COM 개체를 사용 하 여 작업할 때 사용 하 여 위한 것입니다.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.

[! 코드 csharpSystem.Type.GetTypeFromCLSID#11] [! 코드 vbSystem.Type.GetTypeFromCLSID#11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] 대신 합니다 GetTypeFromCLSID(Guid, String, Boolean) 결과 및 사용 하는 관리 되지 않는 COM 개체의 GUID를 검색 하려면만 사용 해야 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)

지정된 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

가져올 형식의 CLSID입니다.The CLSID of the type to get.

server
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.

예제

다음 예제에서는 Microsoft Word의 CLSID 애플리케이션 개체 computer17.central.contoso.com 라는 서버에서 Microsoft Word 애플리케이션을 나타내는 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.

CLSID에서 관리 되지 않는 COM 개체를 인스턴스화하는 2 단계 프로세스입니다.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.

호출자 참고

이 메서드는.NET Framework 개체와 COM 개체를 사용 하 여 작업할 때 사용 하 여 위한 것입니다.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.

[! 코드 csharpSystem.Type.GetTypeFromCLSID#11] [! 코드 vbSystem.Type.GetTypeFromCLSID#11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] 대신 합니다 GetTypeFromCLSID(Guid, String, Boolean) 결과 및 사용 하는 관리 되지 않는 COM 개체의 GUID를 검색 하려면만 사용 해야 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)

지정된 CLSID(클래스 식별자)와 연관된 형식을 가져오고 형식을 로드하는 동안 오류가 발생하면 예외를 throw할지를 지정합니다.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

가져올 형식의 CLSID입니다.The CLSID of the type to get.

throwOnError
Boolean

발생하는 예외를 모두 throw하려면 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.

예제

다음 예제에서는 Microsoft Word의 CLSID 애플리케이션 개체 Microsoft Word 애플리케이션을 나타내는 COM 종류를 검색 합니다.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. 형식을 로드 하는 동안 오류가 발생 하면 예외가 throw 됩니다.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.

CLSID에서 관리 되지 않는 COM 개체를 인스턴스화하는 2 단계 프로세스입니다.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 지정 하는 경우 throw 됩니다 true 에 대 한 throwOnError, 하지만 등록 되지 않은 Clsid에 대 한 실패 하지 것입니다.Exceptions such as OutOfMemoryException will be thrown when specifying true for throwOnError, but it will not fail for unregistered CLSIDs.

호출자 참고

이 메서드는.NET Framework 개체와 COM 개체를 사용 하 여 작업할 때 사용 하 여 위한 것입니다.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.

[! 코드 csharpSystem.Type.GetTypeFromCLSID#11] [! 코드 vbSystem.Type.GetTypeFromCLSID#11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] 대신 합니다 GetTypeFromCLSID(Guid, String, Boolean) 결과 및 사용 하는 관리 되지 않는 COM 개체의 GUID를 검색 하려면만 사용 해야 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)

지정된 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

가져올 형식의 CLSID입니다.The CLSID of the type to get.

반환

System.__ComObject CLSID가 유효한지 여부에 관계 없습니다.System.__ComObject regardless of whether the CLSID is valid.

예제

다음 예제에서는 Microsoft Word의 CLSID 애플리케이션 개체 Microsoft Word 애플리케이션을 나타내는 COM 종류를 검색 합니다.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.

CLSID에서 관리 되지 않는 COM 개체를 인스턴스화하는 2 단계 프로세스입니다.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. 예외가 없는 경우 throw 되는 참고 clsid 는 레지스트리에서 찾을 수 없습니다.Note that no exception is thrown if clsid is not found in the registry.

호출자 참고

이 메서드는.NET Framework 개체와 COM 개체를 사용 하 여 작업할 때 사용 하 여 위한 것입니다.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.

[! 코드 csharpSystem.Type.GetTypeFromCLSID#11] [! 코드 vbSystem.Type.GetTypeFromCLSID#11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] 대신 합니다 GetTypeFromCLSID(Guid, String, Boolean) 결과 및 사용 하는 관리 되지 않는 COM 개체의 GUID를 검색 하려면만 사용 해야 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.

적용 대상