Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

MissingFieldException, classe

Exception levée lors d'une tentative d'accès dynamique à un champ qui n'existe pas.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class MissingFieldException : MissingMemberException, 
	ISerializable

Le type MissingFieldException expose les membres suivants.

  NomDescription
Méthode publiqueMissingFieldException()Initialise une nouvelle instance de la classe MissingFieldException.
Méthode publiqueMissingFieldException(String)Initialise une nouvelle instance de la classe MissingFieldException avec un message d'erreur spécifié.
Méthode protégéeMissingFieldException(SerializationInfo, StreamingContext)Initialise une nouvelle instance de la classe MissingFieldException avec des données sérialisées.
Méthode publiqueMissingFieldException(String, Exception)Initialise une nouvelle instance de la classe MissingFieldException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception.
Méthode publiqueMissingFieldException(String, String)Initialise une nouvelle instance de la classe MissingFieldException avec le nom de la classe et le nom du champ spécifiés.
Début

  NomDescription
Propriété publiqueDataObtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l'utilisateur sur l'exception. (Hérité de Exception.)
Propriété publiqueHelpLinkObtient ou définit un lien vers le fichier d'aide associé à cette exception. (Hérité de Exception.)
Propriété publiqueHResultObtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique. (Hérité de Exception.)
Propriété publiqueInnerExceptionObtient l'instance Exception qui a provoqué l'exception actuelle. (Hérité de Exception.)
Propriété publiqueMessageObtient la chaîne de texte montrant la signature du champ manquant, le nom de la classe et le nom du champ. Cette propriété est en lecture seule. (Substitue MissingMemberException.Message.)
Propriété publiqueSourceObtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. (Hérité de Exception.)
Propriété publiqueStackTraceObtient une représentation sous forme de chaîne des frames immédiates sur la pile des appels. (Hérité de Exception.)
Propriété publiqueTargetSiteObtient la méthode qui lève l'exception actuelle. (Hérité de Exception.)
Début

  NomDescription
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetBaseExceptionEn cas de substitution dans une classe dérivée, retourne Exception qui est à l'origine d'une ou de plusieurs exceptions suivantes. (Hérité de Exception.)
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetObjectDataDéfinit l'objet SerializationInfo avec le nom de la classe, le nom du membre, la signature du membre manquant et les informations d'exception supplémentaires. (Hérité de MissingMemberException.)
Méthode publiqueGetTypeObtient le type au moment de l'exécution de l'instance actuelle. (Hérité de Exception.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiqueToStringCrée et retourne une chaîne représentant l'exception en cours. (Hérité de Exception.)
Début

  NomDescription
Événement protégéSerializeObjectStateSe produit lorsqu'une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées relatives à l'exception. (Hérité de Exception.)
Début

  NomDescription
Champ protégéClassNameContient le nom de la classe du membre manquant. (Hérité de MissingMemberException.)
Champ protégéMemberNameContient le nom du membre manquant. (Hérité de MissingMemberException.)
Champ protégéSignatureContient la signature du membre manquant. (Hérité de MissingMemberException.)
Début

Normalement, une erreur de compilation est générée si le code essaie d'accéder à un membre inexistant d'une classe. MissingFieldException est conçue pour gérer les cas dans lesquels une tentative est faite pour accéder dynamiquement à un champ renommé ou supprimé d'un assembly qui n'est pas référencé par son nom fort. MissingFieldException est levé lorsque le code figurant dans un assembly dépendant tente d'accéder à un champ manquant dans un assembly qui a été modifié.

MissingFieldException utilise le HRESULT COR_E_MISSINGFIELD dont la valeur est 0x80131511.

Pour obtenir une liste des valeurs initiales des propriétés d'une instance de MissingFieldException, consultez les constructeurs MissingFieldException.

Cet exemple montre ce qui se passe lorsque vous essayez d'utiliser la réflexion pour appeler une méthode et accéder à un champ qui n'existent pas. L'application récupère en interceptant MissingMethodException, MissingFieldException et 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 method,
            // a MissingMethodException 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 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.


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft