J'utilise VB.NET. J'ai créé un projet de test à petite échelle qui fonctionne de manière similaire à mon programme. J'essaye de dire quelque chose comme: getObjectType (object1) si Object1.getType() = "ThisType" obtient alors les propriétés. Chaque objet contient un identifiant et je voudrais faire ceci: Object1.Id = -1 (je sais que ce ne sera pas aussi court ou facile). Je pensais qu'il y avait un moyen de le faire en utilisant quelque chose comme: Object1.SetValue (Value2Change, NewValue) mais cela ne fonctionne pas et je ne suis pas sûr de savoir comment faire exactement cela. Voici mon code. Je vous remercie!Définition de valeurs à l'aide de la réflexion
Module Module1
Sub Main()
Dim Db As New Luk_StackUp_ProgramEntities
Dim Obj1 As IEnumerable(Of Stackup) = (From a In Db.Stackups).ToList
Dim Obj2 As IEnumerable(Of Object) = (From a In Db.Stackups).ToList
Dim IdNow As Integer = Obj1(0).IdStackup
Dim StackUpNow As Stackup = (From a In Db.Stackups Where a.IdStackup = IdNow).Single
Console.WriteLine(StackUpNow)
getInfo(StackUpNow)
getInfo(Obj1(0), Obj1(0))
areObjectsSame(Obj1(0), Obj1(67))
switchObjects(Obj1(0), Obj2(1))
getObjectValues(Obj2(55))
Console.WriteLine("========================================")
TestCopyObject(StackUpNow)
ChangeObjectValues(StackUpNow)
Console.ReadKey()
End Sub
Private Sub ChangeObjectValues(Object1 As Object)
Console.WriteLine("Changing Object Values")
Dim myField As PropertyInfo() = Object1.GetType().GetProperties()
'Dim Index As Integer 'Did not find value
'For Index = 0 To myField.Length - 1
' If myField(Index).ToString.Trim = "IdStackup" Then
' Console.WriteLine("Found the ID")
' End If
'Next
If Object1.GetType().Name = "Stackup" Then
'Set the Value
End If
End Sub
A travaillé comme un charme. Merci! Et c'est la seule façon que j'ai trouvé que je peux le faire sans créer une classe étendue pour comprendre les propriétés et quoi d'autre. – MattCucco