Esta documentación está archivada y no tiene mantenimiento.

MissingFieldException (Clase)

Excepción que se produce cuando se intenta tener acceso dinámicamente a un campo que no existe.

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class MissingFieldException : MissingMemberException, ISerializable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class MissingFieldException extends MissingMemberException implements ISerializable
SerializableAttribute 
ComVisibleAttribute(true) 
public class MissingFieldException extends MissingMemberException implements ISerializable

Normalmente se genera un error de compilación si el código intenta tener acceso a un miembro inexistente de una clase. Se designa MissingFieldException para controlar los casos en los que se intenta obtener acceso de forma dinámica a un campo al que se le ha cambiado el nombre o borrado de un ensamblado al que no se hace referencia mediante su nombre seguro. Se produce MissingFieldException cuando el código de un ensamblado dependiente intenta obtener acceso a un campo que no se encuentra en un ensamblado modificado.

MissingFieldException utiliza HRESULT COR_E_MISSINGFIELD, que tiene el valor 0x80131511.

Para obtener una lista con los valores de propiedad iniciales de una instancia de MissingFieldException, vea los constructores MissingFieldException.

En este ejemplo se muestra lo que ocurre cuando se intenta utilizar la reflexión para llamar a un método inexistente u obtener acceso a un campo inexistente. La aplicación se recupera detectando MissingMethodException, MissingFieldException y MissingMemberException.

using System;
using System.Reflection;

public class App 
{
    public static void Main() 
    { 
        
        try 
        {
            // Attempt to call a static DoSomething method defined in the App class.
            // However, because the App class does not define this field, 
            // a MissingFieldException is thrown.
            typeof(App).InvokeMember("DoSomething", BindingFlags.Static | 
                BindingFlags.InvokeMethod, null, null, null);
        }
        catch (MissingMethodException e) 
        {
            // Show the user that the DoSomething method cannot be called.
            Console.WriteLine("Unable to call the DoSomething method: {0}", e.Message);
        }

        try 
        {
            // 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.
            typeof(App).InvokeMember("AField", BindingFlags.Static | BindingFlags.SetField, 
                null, null, new Object[] { 5 });
        }
        catch (MissingFieldException e) 
        {
         // Show the user that the AField field cannot be accessed.
         Console.WriteLine("Unable to access the AField field: {0}", e.Message);
        }

        try 
        {
            // 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.
            typeof(App).InvokeMember("AnotherField", BindingFlags.Static | 
                BindingFlags.GetField, null, null, null);
        }        
        catch (MissingMemberException e) 
        {
         // 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);
        }
    }       
}
// This code 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.

System.Object
   System.Exception
     System.SystemException
       System.MemberAccessException
         System.MissingMemberException
          System.MissingFieldException

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: