VB.NET을 사용하고 있습니다. 내 프로그램과 비슷한 작은 규모의 테스트 프로젝트를 만들었습니다. 나는 다음과 같은 말을하려고합니다. getObjectType (object1) Object1.getType() = "ThisType"다음에 속성을 가져옵니다. 각 개체에는 ID가 포함되어 있으며이 작업을 수행하려고합니다. Object1.Id = -1 (너무 짧거나 쉽지는 않을 것입니다). Object1.SetValue (Value2Change, NewValue)와 같은 것을 사용하여이 작업을 수행하는 방법이 있다고 생각했지만 작동하지 않으며 정확하게 수행하는 방법을 모르겠습니다. 아래는 제 코드입니다. 고맙습니다!반사를 사용하여 값 설정
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
매력처럼 작동했습니다. 감사! 그리고 제가 발견 한 유일한 방법은 속성을 파악하기 위해 광범위한 클래스를 만들지 않고도이 작업을 수행 할 수 있다는 것입니다. – MattCucco