Durchlaufen Klasse Eigenschaften
Habe ich eine VB.NET Klasse " - ticket hat mehrere öffentliche Eigenschaften vom Typ 'Feld'. Ich hätte gerne eine Möglichkeit, dass ich Durchlaufen, sind alle diese Eigenschaften (eine für jeden), und führen Sie eine bestimmte Aufgabe auf jeden von Ihnen. Ich dachte, dass vielleicht der beste Weg war, um eine Liste zu erstellen(Von-Feld) und füllen Sie die Liste mit dem 'Feld' Eigenschaften der Klasse. Was ich nicht weiß, wie zu tun ist, erhalten die Eigenschaften in die Liste dynamisch, so dass wenn ich Eigenschaften, die ich auch in Zukunft nicht geben Sie Sie in die Liste manuell ein. Irgendwelche Gedanken auf, wie ich könnte dies tun? Ich habe versucht, die Suche und fand einige Beispiele, unter Verwendung von reflektion ab, aber ich konnte nur herausfinden, wie man an den Namen der Immobilie und nicht die Immobilie selbst.
Hier ist ein Beispiel für eine Klasse:
Public Class ticket
Public Property location As New field
Public Property user As New field
Public Property callType As New field
Public Property dateOfCall As New field
Public Property tech As New field
Public Property description As New field
Public Property myFields As New List(Of field)
'What if field had a property of value and I wanted to increment all of the fields in this class by one
Public Sub plusOne()
For Each x As field In myFields()
x.value += 1
Next
End Sub
End Class
InformationsquelleAutor donL | 2012-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Sie verwenden möchten Reflexion, das bedeutet nur Prüfung der Typen in einer assembly. Dies können Sie über die System.Reflexion namespace.
Finden Sie unter den folgenden Artikel auf der msdn-Magazin für die Beispiele der Reflexion VB.Net:
http://msdn.microsoft.com/en-us/magazine/cc163750.aspx
Ein Beispiel für die Iteration über die member eines Typs in diesem Artikel lautet wie folgt:
InformationsquelleAutor seth flowers
Wieder als Antwort Sie würde reflektion verwenden. Zu nennen als ein Beispiel
Add
auf eineList(Of T)
würde ich dies tun.Dann verwenden Sie den folgenden code zum aufrufen von add-on ein
List(Of String)
InformationsquelleAutor LukeHennerley
Als die vorherigen Antworten gesagt haben, müssen Sie mit System.Reflexion, um die Eigenschaften der Klasse. Dann überprüfen Sie die-Eigenschaft ist die Art, die Sie wollen.
Hoffentlich dies sollte Ihnen geben, was Sie wollen. Wenn Sie den code ausführen, sehen Sie, dass es dauert nur die Eigenschaften des angegebenen Typs. Wenn Sie wollen, um alle Eigenschaften, entfernen Sie die where-Anweisung die for-each-Schleife.
Hoffe, das hilft
Völlig aus der Spitze von meinem Kopf, aber es sollte funktionieren, da die Klasse hält an der Referenz. Es ist etwas, was Sie können versuchen, durch dumping den obigen code in eine Konsolenanwendung. Ich kann es nicht atm aber sonst-id überprüfen Sie, ob für Sie
InformationsquelleAutor Stuart Blackler