NullReferenceException avec type.GetConstructor
Bonjour,
J'ai des fichiers XML, des classes correspondant et j'aimerais faire une méthode qui me charge automatiquement une (ou plusieurs) classe à partir d'un XML.
J'ai déjà commencé:
test.xml:
Code:
1 2 3 4 5 6 7 8 9 10
| <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<root obj="ClassLibrary1.Class1">
<Plop>Ploup</Plop>
<Plop>Plip</Plop>
<Plop>Plap</Plop>
<Plip>2</Plip>
<Plaps obj="ClassLibrary1.Class2">
<Plap>2</Plap>
</Plaps>
</root> |
Class1.vb
Code:
1 2 3 4 5 6 7
| Public Class Class1
Public Property Plop As List(Of String)
Public Property Plip As Int32
Public Property Plaps As Class2
End Class |
Module1.vb
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Dim obj As Object = AppDomain.CurrentDomain.CreateInstance("ClassLibrary1", className).Unwrap
Dim props As PropertyInfo() = obj.GetType.GetProperties
For Each prop As PropertyInfo In props
Dim value = Nothing
Dim prop_type As Type = prop.PropertyType
'ici, j'aimerais que value prenne le type de la PropertyInfo..
'j'ai essayé:
'
'value = prop_type.GetConstructor(New System.Type() {}).Invoke(New Object() {})
'mais exception de type NullReferenceException (sauf pour la liste..)
Next |
La liste se charge,
la class2 se charge,
mais NullReferenceException pour les types Integer et String (j'en ai pas essayé d'autres pour le moment) et prop_type isnot nothing (j'ai vérifié!)
Je ne sais pas trop comment faire.. auriez-vous une idée?
ps: j'ai un peu épuré le code dans le module1 pour vous donc n'ayez pas peur si il manque des conditions, etc. :calim2: