2012-08-02 3 views
1

J'ai un objet que j'ai défini et je souhaite modifier une de ses propriétés appelée "DeviceType" en utilisant PropertyDescriptor mais cela ne fonctionne pas pour moi.PropertyDescriptor - Exception avec SetValue() pendant que GetValue() fonctionne

Je peux récupérer la valeur de la propriété DeviceType mais lorsque j'utilise SetValue() pour changer sa valeur de propriété, j'obtiens toujours l'exception: "Référence d'objet non définie à une instance d'un objet" même si j'essaie de définir la propriété à la même valeur que je viens de récupérer.

Voici un code:

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(theBase); 
var objValue = properties["DeviceType"].GetValue(theBase); 

try 
{ 
    if (theBase != null && objValue != null) 
    { 
     properties["DeviceType"].SetValue(theBase, objValue); 
    } 
} 
catch (Exception ex) 
{ 

} 

Toute aide serait grandement appréciée. Merci.

+0

Est-ce que la propriété a un setter? – leppie

+0

Il est possible que l'exception de référence nulle provienne de l'accesseur DeviceType – cordialgerm

+0

@leppie: Merci pour votre réponse. Oui, la propriété a un setter. – G24T

Répondre

1

La propriété n'a pas été initialisée correctement lorsque mon objet a été créé et donc la propriété setter générait une erreur d'exception de référence null.