Type.GetField Method (String)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Searches for the public field with the specified name.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- name
- Type: System.String
The String containing the name of the data field to get.
Return Value
Type: System.Reflection.FieldInfoA FieldInfo object representing the public field with the specified name, if found; otherwise, Nothing.
| Exception | Condition |
|---|---|
| ArgumentNullException | name is Nothing. |
| NotSupportedException | This Type object is a TypeBuilder whose CreateType method has not yet been called. |
The search for name is case-sensitive. The search includes public static and public instance fields.
If the current Type represents a constructed generic type, this method returns the FieldInfo with the type parameters replaced by the appropriate type arguments.
If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the fields of the class constraint.
The following example gets the Type object for the specified class, obtains the FieldInfo object for the field, and displays the value of the field.
Note: |
|---|
To run this example, see Building examples that have static TextBlock controls for Windows Phone 8. |
Imports System.Reflection Public Class MyFieldClassA Public Field As String = "A Field" End Class Public Class MyFieldClassB Private myField As String = "B Field" Public Property Field() As String Get Return myField End Get Set(ByVal Value As String) If myField <> Value Then myField = Value End If End Set End Property End Class Public Class Example Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) Dim myFieldObjectB As New MyFieldClassB() Dim myFieldObjectA As New MyFieldClassA() Dim myTypeA As Type = GetType(MyFieldClassA) Dim myFieldInfo As FieldInfo = myTypeA.GetField("Field") Dim myTypeB As Type = GetType(MyFieldClassB) Dim myFieldInfo1 As FieldInfo = myTypeB.GetField("myField", _ BindingFlags.NonPublic Or BindingFlags.Instance) outputBlock.Text += String.Format("The value of the public field is: '{0}'", _ myFieldInfo.GetValue(myFieldObjectA)) + vbCrLf Try ' In Windows Phone, the value of a private field cannot be accessed ' by using reflection. outputBlock.Text += String.Format("The value of the private field is: '{0}'", _ myFieldInfo1.GetValue(myFieldObjectB)) + vbCrLf Catch ex As Exception outputBlock.Text &= ex.GetType().Name & " occurred: " & ex.Message End Try End Sub End Class ' This code produces output similar to the following: ' 'The value of the public field is: 'A Field' 'FieldAccessException occurred: SilverlightApplication.MyFieldClassB.myField
Note: