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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.