Type.GetTypeFromCLSID メソッド

定義

指定したクラス識別子 (CLSID) に関連付けられている型を取得します。Gets the type associated with the specified class identifier (CLSID).

オーバーロード

GetTypeFromCLSID(Guid, String, Boolean)

型の読み込み中にエラーが発生した場合に例外をスローするかどうかを指定して、指定したサーバーの指定したクラス ID (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)

指定したサーバーから、指定したクラス ID (CLSID) に関連付けられている型を取得します。Gets the type associated with the specified class identifier (CLSID) from the specified server.

GetTypeFromCLSID(Guid, Boolean)

型の読み込み中にエラーが発生した場合に例外をスローするかどうかを指定して、指定したクラス ID (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)

指定したクラス識別子 (CLSID) に関連付けられている型を取得します。Gets the type associated with the specified class identifier (CLSID).

GetTypeFromCLSID(Guid, String, Boolean)

型の読み込み中にエラーが発生した場合に例外をスローするかどうかを指定して、指定したサーバーの指定したクラス ID (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

取得する型の 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

発生した例外をすべてスローする場合は truetrue to throw any exception that occurs.

- または --or- 発生した例外をすべて無視する場合は falsefalse to ignore any exception that occurs.

戻り値

CLSID が有効かどうかに関係なく System.__ComObjectSystem.__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メソッドを呼び出して型をインスタンス化し、 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 オブジェクトのクラス識別子 (CLSID) がわかっている場合に、.NET Framework アプリからアンマネージ COM オブジェクトへの遅延バインディングアクセスをサポートします。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 、プログラム識別子 (ProgID) がわかっている COM オブジェクトへの遅延バインディングアクセスを行うことができます。You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

アンマネージ COM オブジェクトを CLSID からインスタンス化するには、次の2つの手順を実行します。Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. メソッドをType呼び出し__ComObjectて、CLSID に対応するを表すオブジェクトを取得します。 GetTypeFromCLSIDGet 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.

注意 (呼び出し元)

このメソッドは、.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.

[!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11][!code-csharpSystem.Type.GetTypeFromCLSID#11] [!code-vbSystem.Type.GetTypeFromCLSID#11] 代わりに、を使用してアンマネージ com オブジェクトの GUID を取得するType CreateInstance(Type) 必要があります。また、メソッドに渡される結果のオブジェクトは、アンマネージcomオブジェクトを表す必要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)

指定したサーバーから、指定したクラス ID (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.

戻り値

CLSID が有効かどうかに関係なく System.__ComObjectSystem.__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メソッドを呼び出して型をインスタンス化し、 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 オブジェクトのクラス識別子 (CLSID) がわかっている場合に、.NET Framework アプリからアンマネージ COM オブジェクトへの遅延バインディングアクセスをサポートします。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 、プログラム識別子 (ProgID) がわかっている COM オブジェクトへの遅延バインディングアクセスを行うことができます。You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

アンマネージ COM オブジェクトを CLSID からインスタンス化するには、次の2つの手順を実行します。Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. メソッドをType呼び出し__ComObjectて、CLSID に対応するを表すオブジェクトを取得します。 GetTypeFromCLSIDGet 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. メソッドは .NET Framework オブジェクトのType GUID に対応するオブジェクトを返しますが、次の例に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] 代わりに、を使用してアンマネージ com オブジェクトの GUID を取得するType CreateInstance(Type) 必要があります。また、メソッドに渡される結果のオブジェクトは、アンマネージcomオブジェクトを表す必要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)

型の読み込み中にエラーが発生した場合に例外をスローするかどうかを指定して、指定したクラス ID (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

取得する型の CLSID。The CLSID of the type to get.

throwOnError
Boolean

発生した例外をすべてスローする場合は truetrue to throw any exception that occurs.

または-or- 発生した例外をすべて無視する場合は falsefalse to ignore any exception that occurs.

戻り値

CLSID が有効かどうかに関係なく System.__ComObjectSystem.__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メソッドを呼び出して型をインスタンス化し、 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 オブジェクトのクラス識別子 (CLSID) がわかっている場合に、.NET Framework アプリからアンマネージ COM オブジェクトへの遅延バインディングアクセスをサポートします。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 、プログラム識別子 (ProgID) がわかっている COM オブジェクトへの遅延バインディングアクセスを行うことができます。You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

アンマネージ COM オブジェクトを CLSID からインスタンス化するには、次の2つの手順を実行します。Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. メソッドをType呼び出し__ComObjectて、CLSID に対応するを表すオブジェクトを取得します。 GetTypeFromCLSIDGet 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.

注意 (呼び出し元)

このメソッドは、.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. メソッドは .NET Framework オブジェクトのType GUID に対応するオブジェクトを返しますが、次の例に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] 代わりに、を使用してアンマネージ com オブジェクトの GUID を取得するType CreateInstance(Type) 必要があります。また、メソッドに渡される結果のオブジェクトは、アンマネージcomオブジェクトを表す必要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)

指定したクラス識別子 (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.

戻り値

CLSID が有効かどうかに関係なく System.__ComObjectSystem.__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メソッドを呼び出して型をインスタンス化し、 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 オブジェクトのクラス識別子 (CLSID) がわかっている場合に、.NET Framework アプリからアンマネージ COM オブジェクトへの遅延バインディングアクセスをサポートします。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 、プログラム識別子 (ProgID) がわかっている COM オブジェクトへの遅延バインディングアクセスを行うことができます。You can call the GetTypeFromProgID method for late-bound access to COM objects whose programmatic identifier (ProgID) you know.

アンマネージ COM オブジェクトを CLSID からインスタンス化するには、次の2つの手順を実行します。Instantiating an unmanaged COM object from its CLSID is a two-step process:

  1. メソッドをType呼び出し__ComObjectて、CLSID に対応するを表すオブジェクトを取得します。 GetTypeFromCLSIDGet 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)は、 clsid引数に基づいてオブジェクトをTypeインスタンス化するときに発生する可能性のある例外を無視します。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.

注意 (呼び出し元)

このメソッドは、.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. メソッドは .NET Framework オブジェクトのType GUID に対応するオブジェクトを返しますが、次の例に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] 代わりに、を使用してアンマネージ com オブジェクトの GUID を取得するType CreateInstance(Type) 必要があります。また、メソッドに渡される結果のオブジェクトは、アンマネージcomオブジェクトを表す必要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.

適用対象