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 セキュリティ:
- ReflectionPermission (非パブリック メンバをリフレクション操作するために必要なアクセス許可) ReflectionPermissionFlag.TypeInformation (関連する列挙体)
参照
Type クラス | Type メンバ | System 名前空間 | Type.GetTypeFromProgID オーバーロードの一覧 | GetProgIdForType | TypeLoadException | ReflectionPermission