Hallo!
Folgende Situation: Die Eigenschaften eines unbekannten Objektes sollen ausgelesen werden. Mittels Reflection bin ich hier schon einen großen Schritt weiter gekommen.
Allerdings ergibt sich ein für mich zur Zeit unlösbares Problem, wenn eine Eigenschaft als Typ eine Liste ist, und mehrere Unterelemente enthält.
z.B. Teilnehmer
--> teilnehmer1
--> teilnehmer2
Auf diese untere Ebene (teilnehmer1, teilnehmer2) bin ich bis dato noch nicht vorgekommen. Mit welchen Mitteln ist dies zu realisieren? Der Programmquelltext soll völlig unabhängig vom bestehenden Objekt realisiert werden, soll eine Art O/R-Mapper werden.
For Each eigenschaft In meeting.GetType.GetProperties.ToList
If eigenschaft.PropertyType.ToString = "System.String" Or eigenschaft.PropertyType.ToString = "System.Int32" Then
Try
eigenschaft.SetValue(meeting, eigenschaft.GetValue(meeting, Nothing), Nothing)
Catch ex As Exception
valid = False : Exit Sub
End Try
ElseIf eigenschaft.PropertyType.ToString.Contains("List") Then
'For Each info In eigenschaft.GetType.GetMethods.ToList
' ListBox1.Items.Add(info.Name.ToString)
'Next
'ListBox1.Sorted = True
'For Each info In eigenschaft.GetGetMethod.GetParameters.ToList
' MessageBox.Show(info.Name.ToString)
'Next
'Dim test As Object = eigenschaft.GetValue("EFN", New Object() {0})
'Dim mi As MethodInfo = eigenschaft.GetType.GetMethod("GetObjectData")
'Dim test As Object = mi.Invoke(eigenschaft, New Object() {})
End If
Next
Das bestehende Objekt ist Instanz einer Klasse, die automatisch mittels linq to xsd erzeugt wird.
Ich hoffe, hier kann mir einer weiterhelfen.
Mit freundlichen Grüßen
Andrè Döking
Folgende Situation: Die Eigenschaften eines unbekannten Objektes sollen ausgelesen werden. Mittels Reflection bin ich hier schon einen großen Schritt weiter gekommen.
Allerdings ergibt sich ein für mich zur Zeit unlösbares Problem, wenn eine Eigenschaft als Typ eine Liste ist, und mehrere Unterelemente enthält.
z.B. Teilnehmer
--> teilnehmer1
--> teilnehmer2
Auf diese untere Ebene (teilnehmer1, teilnehmer2) bin ich bis dato noch nicht vorgekommen. Mit welchen Mitteln ist dies zu realisieren? Der Programmquelltext soll völlig unabhängig vom bestehenden Objekt realisiert werden, soll eine Art O/R-Mapper werden.
For Each eigenschaft In meeting.GetType.GetProperties.ToList
If eigenschaft.PropertyType.ToString = "System.String" Or eigenschaft.PropertyType.ToString = "System.Int32" Then
Try
eigenschaft.SetValue(meeting, eigenschaft.GetValue(meeting, Nothing), Nothing)
Catch ex As Exception
valid = False : Exit Sub
End Try
ElseIf eigenschaft.PropertyType.ToString.Contains("List") Then
'For Each info In eigenschaft.GetType.GetMethods.ToList
' ListBox1.Items.Add(info.Name.ToString)
'Next
'ListBox1.Sorted = True
'For Each info In eigenschaft.GetGetMethod.GetParameters.ToList
' MessageBox.Show(info.Name.ToString)
'Next
'Dim test As Object = eigenschaft.GetValue("EFN", New Object() {0})
'Dim mi As MethodInfo = eigenschaft.GetType.GetMethod("GetObjectData")
'Dim test As Object = mi.Invoke(eigenschaft, New Object() {})
End If
Next
Das bestehende Objekt ist Instanz einer Klasse, die automatisch mittels linq to xsd erzeugt wird.
Ich hoffe, hier kann mir einer weiterhelfen.
Mit freundlichen Grüßen
Andrè Döking
Comment