次の方法で共有


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

参照

MemberInfo クラス | MemberInfo メンバ | System.Reflection 名前空間