MemberInfo.ReflectedType プロパティ
MemberInfo のこのインスタンスを取得するために使用したクラス オブジェクトを取得します。
Public MustOverride ReadOnly Property ReflectedType As Type
[C#]
public abstract Type ReflectedType {get;}
[C++]
public: __property virtual Type* get_ReflectedType() = 0;
[JScript]
public abstract function get ReflectedType() : Type;
プロパティ値
この MemberInfo オブジェクトを取得するために使用した Type オブジェクト。
解説
ReflectedType プロパティは、 MemberInfo のこのインスタンスを取得するために使用した Type オブジェクトを取得します。 MemberInfo オブジェクトは、特定のクラスまたはインターフェイスのメンバを表します。
MethodInfo オブジェクトを取得するには
- メソッドをサポートするクラスまたはインターフェイスを表す Type オブジェクトを照会します。このプロパティが、照会の結果返された type オブジェクトへの参照を保持します。
- リフレクションされた型が、メソッドを宣言しているクラスと同じクラスの場合、メソッドは基本クラスではなく、その宣言クラスで定義されます。
- MemberInfo オブジェクトがグローバル メンバの場合 (モジュールでグローバル メソッドを返す Module.GetMethods から取得されたメンバの場合)、返される DeclaringType は null 参照 (Visual Basic では Nothing) になります。
使用例
[Visual Basic, C#, C++] 指定した型の ReflectedType プロパティを取得する例を次に示します。
Imports System
Imports System.IO
Imports System.Reflection
Imports Microsoft.VisualBasic
Class Mymemberinfo
Public Shared Sub Main()
Console.WriteLine(ControlChars.Cr & "Reflection.MemberInfo")
' Get the Type and MemberInfo.
Dim MyType As Type = Type.GetType("System.IO.BufferedStream")
Dim Mymemberinfoarray As MemberInfo() = MyType.GetMembers()
' Get and display the DeclaringType method.
Console.WriteLine(ControlChars.Cr & "There are {0} members in {1}:", _
Mymemberinfoarray.Length, MyType.FullName)
Dim Mymemberinfo As MemberInfo
For Each Mymemberinfo In Mymemberinfoarray
Console.WriteLine(ControlChars.Cr & Mymemberinfo.Name _
& " reflected type - " & Mymemberinfo.ReflectedType.ToString())
Next Mymemberinfo
End Sub
End Class
[C#]
using System;
using System.IO;
using System.Reflection;
class Mymemberinfo
{
public static void Main(string[] args)
{
Console.WriteLine ("\nReflection.MemberInfo");
// Get the Type and MemberInfo.
Type MyType =Type.GetType("System.IO.BufferedStream");
MemberInfo[] Mymemberinfoarray = MyType.GetMembers();
// Get and display the DeclaringType method.
Console.Write("\nThere are {0} members in ", Mymemberinfoarray.Length);
Console.Write("{0}.", MyType.FullName);
foreach (MemberInfo Mymemberinfo in Mymemberinfoarray)
{
Console.Write("\n" + Mymemberinfo.Name + " reflected type - " +
Mymemberinfo.ReflectedType);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
using namespace System::Reflection;
int main()
{
Console::WriteLine (S"\nReflection.MemberInfo");
// Get the Type and MemberInfo.
Type* MyType =Type::GetType(S"System.IO.BufferedStream");
MemberInfo* Mymemberinfoarray[] = MyType->GetMembers();
// Get and display the DeclaringType method.
Console::Write(S"\nThere are {0} members in ", __box(Mymemberinfoarray->Length));
Console::Write(S"{0}.", MyType->FullName);
System::Collections::IEnumerator* enum0 = Mymemberinfoarray->GetEnumerator();
while (enum0->MoveNext())
{
MemberInfo* Mymemberinfo = __try_cast<MemberInfo*>(enum0->Current);
Console::Write(S"\n{0} reflected type - {1}", Mymemberinfo->Name, Mymemberinfo->ReflectedType);
}
}
[Visual Basic, C#, C++] このコードによって、次の出力が生成されます。
[Visual Basic, C#, C++] Reflection.MemberInfo
[Visual Basic, C#, C++] There are 31 members in System.IO.BufferedStream.
[Visual Basic, C#, C++] WriteByte reflected type - System.IO.BufferedStream
[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 Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard