7 votes

Reflection PropertyInfo.GetValue

Je suis novice dans l'utilisation de la réflexion en C#. Toute aide est la bienvenue.

PropertyInfo.GetValue(obj, null) me donne une valeur d'objet.

Si la valeur de la colonne est nulle dans la base de données, j'obtiens une exception Null :

System.Reflection.TargetInvocationException : Une exception a été levée par la cible d'une invocation. Microsoft.SqlServer.Dts.Pipeline.ColumnIsNullException : La colonne a une valeur nulle.

Comment gérer cette situation ? Je devrais passer en revue toutes les colonnes et laisser celles qui ont une valeur nulle.

7voto

Vous pouvez vérifier la présence de "Null" directement de la manière suivante

if(propInfo.GetValue(this, null) != null) {
}

3voto

vcsjones Points 51910

Le getter de cette propriété lance un excepting. Il essaie de vous dire que la propriété n'a pas de valeur.

Vous devriez pouvoir vérifier PropertyName_IsNull (Où Nom du bien est le nom de la propriété) pour vérifier d'abord si la propriété est nulle. Si c'est le cas, traitez-la de manière appropriée, sinon utilisez le code que vous avez déjà écrit.

En MSDN :

Une propriété <column>_IsNull pour chaque colonne d'entrée sélectionnée. Cette propriété est également en lecture seule ou en lecture/écriture en fonction du type d'utilisation spécifié pour la colonne.

2voto

sellmeadog Points 3431

PropertyInfo.GetValue(obj, null) exécute la méthode d'obtention de la propriété sur l'objet obj . L'exception est levée dans la méthode get. Vous devez examiner la méthode get de la propriété que vous invoquez et déterminer quand/pourquoi une exception est levée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X