Ich benutze VB.NET. Ich habe ein kleines Testprojekt erstellt, das ähnlich wie mein Programm funktioniert. Ich versuche etwas zu sagen: getObjectType (object1) wenn Object1.getType() = "ThisType" dann die Eigenschaften erhalten. Jedes Objekt enthält eine ID und ich möchte dies tun: Object1.Id = -1 (Ich weiß, dass es nicht so kurz oder einfach sein wird). Ich dachte, es gibt eine Möglichkeit, dies zu tun, indem man etwas wie: Object1.SetValue (Value2Change, NewValue) verwendet, aber das funktioniert nicht und ich bin mir nicht sicher, wie ich das genau machen soll. Unten ist mein Code. Danke!Setzen von Werten mit Reflection
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
Arbeitete wie ein Charme. Vielen Dank! Und es ist der einzige Weg, den ich gefunden habe, ich kann dies tun, ohne eine umfangreiche Klasse zu erstellen, um die Eigenschaften herauszufinden und was nicht. – MattCucco