FieldInfo.FieldHandle プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
フィールドの内部メタデータ形式を識別するハンドル。
ハンドルは取得されたアプリケーション ドメインでだけ有効です。
MyClass.MyField のフィールド情報を取得し、フィールド ハンドルと関連付けられているフィールドを表示する例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Public Class [MyClass] Public MyField As String = "Microsoft" End Class '[MyClass] Public Class FieldInfo_FieldHandle Public Shared Sub Main() Dim [myClass] As New [MyClass]() ' Get the type of MyClass. Dim myType As Type = GetType([MyClass]) Try ' Get the field information of MyField. Dim myFieldInfo As FieldInfo = myType.GetField("MyField", BindingFlags.Public Or BindingFlags.Instance) ' Determine whether or not the FieldInfo object is null. If Not (myFieldInfo Is Nothing) Then ' Get the handle for the field. Dim myFieldHandle As RuntimeFieldHandle = myFieldInfo.FieldHandle DisplayFieldHandle(myFieldHandle) Else Console.WriteLine("The myFieldInfo object is null.") End If Catch e As Exception Console.WriteLine(" Exception: {0}", e.Message.ToString()) End Try End Sub 'Main Public Shared Sub DisplayFieldHandle(ByVal myFieldHandle As RuntimeFieldHandle) ' Get the type from the handle. Dim myField As FieldInfo = FieldInfo.GetFieldFromHandle(myFieldHandle) ' Display the type. Console.WriteLine(ControlChars.Cr + "Displaying the field from the handle." + ControlChars.Cr) Console.WriteLine("The type is {0}.", myField.ToString()) End Sub 'DisplayFieldHandle End Class 'FieldInfo_FieldHandle
using System; using System.Reflection; public class MyClass { public string MyField = "Microsoft"; } public class FieldInfo_FieldHandle { public static void Main() { MyClass myClass =new MyClass(); // Get the type of MyClass. Type myType = typeof(MyClass); try { // Get the field information of MyField. FieldInfo myFieldInfo = myType.GetField("MyField", BindingFlags.Public | BindingFlags.Instance); // Determine whether or not the FieldInfo object is null. if(myFieldInfo!=null) { // Get the handle for the field. RuntimeFieldHandle myFieldHandle=myFieldInfo.FieldHandle; DisplayFieldHandle(myFieldHandle); } else { Console.WriteLine("The myFieldInfo object is null."); } } catch(Exception e) { Console.WriteLine("Exception: {0}", e.Message); } } public static void DisplayFieldHandle(RuntimeFieldHandle myFieldHandle) { // Get the type from the handle. FieldInfo myField = FieldInfo.GetFieldFromHandle(myFieldHandle); // Display the type. Console.WriteLine("\nDisplaying the field from the handle.\n"); Console.WriteLine("The type is {0}.", myField.ToString()); } }
using namespace System; using namespace System::Reflection; public ref class MyClass { public: String^ MyField; }; void DisplayFieldHandle( RuntimeFieldHandle myFieldHandle ) { // Get the type from the handle. FieldInfo^ myField = FieldInfo::GetFieldFromHandle( myFieldHandle ); // Display the type. Console::WriteLine( "\nDisplaying the field from the handle.\n" ); Console::WriteLine( "The type is {0}.", myField ); } int main() { MyClass^ myClass = gcnew MyClass; // Get the type of MyClass. Type^ myType = MyClass::typeid; try { // Get the field information of MyField. FieldInfo^ myFieldInfo = myType->GetField( "MyField", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) ); // Determine whether or not the FieldInfo Object* is 0. if ( myFieldInfo != nullptr ) { // Get the handle for the field. RuntimeFieldHandle myFieldHandle = myFieldInfo->FieldHandle; DisplayFieldHandle( myFieldHandle ); } else { Console::WriteLine( "The myFieldInfo Object* is 0." ); } } catch ( Exception^ e ) { Console::WriteLine( "Exception: {0}", e->Message ); } }
import System.*; import System.Reflection.*; public class MyClass { public String myField = "Microsoft"; } //MyClass public class FieldInfoFieldHandle { public static void main(String[] args) { MyClass myClass = new MyClass(); // Get the type of MyClass. Type myType = MyClass.class.ToType(); try { // Get the field information of myField. FieldInfo myFieldInfo = myType.GetField("myField", BindingFlags.Public | BindingFlags.Instance); // Determine whether or not the FieldInfo object is null. if (myFieldInfo != null) { // Get the handle for the field. RuntimeFieldHandle myFieldHandle = myFieldInfo. get_FieldHandle(); DisplayFieldHandle(myFieldHandle); } else { Console.WriteLine("The myFieldInfo object is null."); } } catch (System.Exception e) { Console.WriteLine("Exception: {0}", e.get_Message()); } } //main public static void DisplayFieldHandle(RuntimeFieldHandle myFieldHandle) { // Get the type from the handle. FieldInfo myField = FieldInfo.GetFieldFromHandle(myFieldHandle); // Display the type. Console.WriteLine("\nDisplaying the field from the handle.\n"); Console.WriteLine("The type is {0}.", myField.ToString()); } //DisplayFieldHandle } //FieldInfoFieldHandle
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
_FieldInfo.FieldHandle プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
フィールドの内部メタデータ形式を識別するハンドル。
このプロパティは、アンマネージ コードからマネージ クラスにアクセスするためのプロパティであるため、マネージ コードからは呼び出さないでください。
FieldHandle プロパティは、フィールドの内部メタデータ形式を識別するハンドルである RuntimeFieldHandle を取得します。
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- _FieldInfo.FieldHandleのページへのリンク