Практическое руководство. Получение сведений о типе и члене с помощью отражения
Пространство имен System.Reflection содержит много методов для получения сведений о типах и их членах. В этой статье демонстрируется один из этих методов — Type.GetMembers. Дополнительные сведения см. в разделе Общие сведения об отражении.
Пример
В следующем примере демонстрируется получение сведений о типах и членах с помощью отражения:
using namespace System;
using namespace System::Reflection;
ref class Asminfo1
{
public:
static void Main()
{
Console::WriteLine ("\nReflection.MemberInfo");
// Get the Type and MemberInfo.
// Insert the fully qualified class name inside the quotation marks in the
// following statement.
Type^ MyType = Type::GetType("System.IO.BinaryReader");
array<MemberInfo^>^ Mymemberinfoarray = MyType->GetMembers(BindingFlags::Public |
BindingFlags::NonPublic | BindingFlags::Static |
BindingFlags::Instance | BindingFlags::DeclaredOnly);
// Get and display the DeclaringType method.
Console::Write($"\nThere are {Mymemberinfoarray->Length} documentable members in ");
Console::Write($"{MyType->FullName}.");
for each (MemberInfo^ Mymemberinfo in Mymemberinfoarray)
{
Console::Write("\n" + Mymemberinfo->Name);
}
}
};
int main()
{
Asminfo1::Main();
}
using System;
using System.Reflection;
class Asminfo1
{
public static void Main()
{
Console.WriteLine ("\nReflection.MemberInfo");
// Get the Type and MemberInfo.
// Insert the fully qualified class name inside the quotation marks in the
// following statement.
Type MyType = Type.GetType("System.IO.BinaryReader");
MemberInfo[] Mymemberinfoarray = MyType.GetMembers(BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Static |
BindingFlags.Instance | BindingFlags.DeclaredOnly);
// Get and display the DeclaringType method.
Console.Write($"\nThere are {Mymemberinfoarray.Length} documentable members in ");
Console.Write($"{MyType.FullName}.");
foreach (MemberInfo Mymemberinfo in Mymemberinfoarray)
{
Console.Write("\n" + Mymemberinfo.Name);
}
}
}
Imports System.Reflection
Class Asminfo1
Public Shared Sub Main()
Console.WriteLine("\nReflection.MemberInfo")
' Get the Type and MemberInfo.
' Insert the fully qualified class name inside the quotation marks in the
' following statement.
Dim MyType As Type = Type.GetType("System.IO.BinaryReader")
Dim Mymemberinfoarray() As MemberInfo = MyType.GetMembers(BindingFlags.Public Or
BindingFlags.NonPublic Or BindingFlags.Static Or
BindingFlags.Instance Or BindingFlags.DeclaredOnly)
' Get and display the DeclaringType method.
Console.Write($"\nThere are {Mymemberinfoarray.Length} documentable members in ")
Console.Write($"{MyType.FullName}.")
For Each Mymemberinfo As MemberInfo in Mymemberinfoarray
Console.Write("\n" + Mymemberinfo.Name)
Next
End Sub
End Class
См. также
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.