次の方法で共有


Type.GetTypeFromProgID メソッド (String, String, Boolean)

型の読み込み中にエラーが発生した場合に例外をスローするかどうかを指定して、指定したサーバーの指定したプログラム ID (ProgID) に関連付けられた型を取得します。

Overloads Public Shared Function GetTypeFromProgID( _
   ByVal progID As String, _   ByVal server As String, _   ByVal throwOnError As Boolean _) As Type
[C#]
public static Type GetTypeFromProgID(stringprogID,stringserver,boolthrowOnError);
[C++]
public: static Type* GetTypeFromProgID(String* progID,String* server,boolthrowOnError);
[JScript]
public static function GetTypeFromProgID(
   progID : String,server : String,throwOnError : Boolean) : Type;

パラメータ

  • progID
    取得する Type のプログラム ID。

  • server
    型の読み込み元のサーバー。サーバー名が null 参照 (Visual Basic では Nothing) の場合、このメソッドは自動的にローカル マシンの名前を使用します。

  • throwOnError
    発生した例外をすべてスローする場合は true

    または

    発生した例外をすべて無視する場合は false

戻り値

progID がレジストリの有効なエントリで、型がそれに関連付けられている場合は、指定したプログラム ID (progID) に関連付けられている Type 。それ以外の場合は null 参照 (Visual Basic では Nothing) 。

例外

例外の種類 条件
ArgumentException progID が null 参照 (Visual Basic では Nothing) です。
COMException 指定された ProgId が登録されていません。

解説

このメソッドは COM サポートに対して提供されます。プログラム ID の代わりに名前空間の概念が導入されたため、プログラム ID は Microsoft .NET Framework では使用されません。

使用例

[Visual Basic, C#, C++] ProgID とサーバー名を渡して型を取得する例を次に示します。この例では次に、ProgID かサーバー名が無効な場合に例外をスローするかどうかを指定して、ProgID に関連付けられている ClassID を表示します。

 
Imports System
Class MainApp
    Public Shared Sub Main()
        Try
            ' Use Server localhost.
            Dim theServer As String = "localhost"
            ' Use  ProgID HKEY_CLASSES_ROOT\DirControl.DirList.1.
            Dim myString1 As String = "DirControl.DirList.1"
            ' Use a wrong ProgID WrongProgID.
            Dim myString2 As String = "WrongProgID"
            ' Make a call to the method to get the type information for the given ProgID.
            Dim myType1 As Type = Type.GetTypeFromProgID(myString1, theServer, True)
            Console.WriteLine("GUID for ProgID DirControl.DirList.1 is {0}.", myType1.GUID.ToString())
            ' Throw an exception because the ProgID is invalid and the throwOnError 
            ' parameter is set to True.
            Dim myType2 As Type = Type.GetTypeFromProgID(myString2, theServer, True)
        Catch e As Exception
            Console.WriteLine("An exception occurred. The ProgID is wrong.")
            Console.WriteLine("Source: {0}", e.Source.ToString())
            Console.WriteLine("Message: {0}", e.Message.ToString())
        End Try
    End Sub 'Main 
End Class 'MainApp

[C#] 

using System;
class MainApp 
{
    public static void Main()
    {
        try
        {
            // Use server localhost.
            string theServer="localhost";
            // Use  ProgID HKEY_CLASSES_ROOT\DirControl.DirList.1.
            string myString1 ="DirControl.DirList.1"; 
            // Use a wrong ProgID WrongProgID.
            string myString2 ="WrongProgID"; 
            // Make a call to the method to get the type information for the given ProgID.
            Type myType1 =Type.GetTypeFromProgID(myString1,theServer,true);
            Console.WriteLine("GUID for ProgID DirControl.DirList.1 is {0}.", myType1.GUID);
            // Throw an exception because the ProgID is invalid and the throwOnError 
            // parameter is set to True.
            Type myType2 =Type.GetTypeFromProgID(myString2, theServer, true);
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred. The ProgID is wrong.");
            Console.WriteLine("Source: {0}" , e.Source);
            Console.WriteLine("Message: {0}" , e.Message);
        }
    }
}

[C++] 

#using <mscorlib.dll>

using namespace System;

int main() {
   try {
      // Use server localhost.
      String* theServer=S"localhost";
      // Use  ProgID HKEY_CLASSES_ROOT\DirControl.DirList.1.
      String* myString1 =S"DirControl.DirList.1";
      // Use a wrong ProgID WrongProgID.
      String* myString2 =S"WrongProgID";
      // Make a call to the method to get the type information for the given ProgID.
      Type* myType1 =Type::GetTypeFromProgID(myString1, theServer, true);
      Console::WriteLine(S"GUID for ProgID DirControl.DirList.1 is {0}.",__box( myType1->GUID));
      // Throw an exception because the ProgID is invalid and the throwOnError
      // parameter is set to True.
      Type* myType2 =Type::GetTypeFromProgID(myString2, theServer, true);
   } catch (Exception* e) {
      Console::WriteLine(S"An exception occurred. The ProgID is wrong.");
      Console::WriteLine(S"Source: {0}" , e->Source);
      Console::WriteLine(S"Message: {0}" , e->Message);
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Type クラス | Type メンバ | System 名前空間 | Type.GetTypeFromProgID オーバーロードの一覧 | GetProgIdForType | TypeLoadException | ReflectionPermission