MissingFieldException Class

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

The exception that is thrown when there is an attempt to dynamically access a field that does not exist. If a field in a class library has been removed or renamed, recompile any assemblies that reference that library.

Normally a compilation error is generated if code attempts to access a nonexistent member of a class. MissingFieldException is designed to handle cases where an attempt is made to dynamically access a renamed or deleted field of an assembly that is not referenced by its strong name. The MissingFieldException is thrown when code in a dependent assembly attempts to access a missing field in an assembly that was modified.

MissingFieldException uses the HRESULT COR_E_MISSINGFIELD, that has the value 0x80131511.

For a list of initial property values for an instance of MissingFieldException, see the MissingFieldException constructors.

This example shows what happens if you attempt to use reflection to call a method that does not exist and access a field that does not exist. The application recovers by catching the MissingMethodException, MissingFieldException, and MissingMemberException.

Imports System
Imports System.Reflection
PublicClass App
PublicSharedSub Main()
Try' Attempt to call a static DoSomething method defined in the App class.' However, because the App class does not define this method, ' a MissingMethodException is thrown.GetType(App).InvokeMember("DoSomething", BindingFlags.StaticOr BindingFlags.InvokeMethod, _
Nothing, Nothing, Nothing)
Catch e As MissingMethodException
' Show the user that the DoSomething method cannot be called.
Console.WriteLine("Unable to call the DoSomething method: {0}", e.Message)
EndTryTry' Attempt to access a static AField field defined in the App class.' However, because the App class does not define this field, ' a MissingFieldException is thrown.GetType(App).InvokeMember("AField", BindingFlags.StaticOr BindingFlags.SetField, _
Nothing, Nothing, New [Object]() {5})
Catch e As MissingFieldException
' Show the user that the AField field cannot be accessed.
Console.WriteLine("Unable to access the AField field: {0}", e.Message)
EndTryTry' Attempt to access a static AnotherField field defined in the App class.' However, because the App class does not define this field, ' a MissingFieldException is thrown.GetType(App).InvokeMember("AnotherField", BindingFlags.StaticOr BindingFlags.GetField, _
Nothing, Nothing, Nothing)
Catch e As MissingMemberException
' Notice that this code is catching MissingMemberException which is the ' base class of MissingMethodException and MissingFieldException.' Show the user that the AnotherField field cannot be accessed.
Console.WriteLine("Unable to access the AnotherField field: {0}", e.Message)
EndTryEndSubEndClass' This code example produces the following output:'' Unable to call the DoSomething method: Method 'App.DoSomething' not found.' Unable to access the AField field: Field 'App.AField' not found.' Unable to access the AnotherField field: Field 'App.AnotherField' not found.