-1

I need to use Reflection for this problem. Just a simple code needed written in ASP.net and reflection. Reflection is a must.

Please take a look attached file for more info and example.

I just want to make the code below working. Output does not work as expected! Shows the same result!

Public Class JoinTables
    Public Class userz_N_user_roles
        Public userz As New userz
        Public user_roles As New user_roles   
    End Class
End Class

Public Class userz

    Public Shared id As Nullable(Of Integer) = Nothing
    Public user_name As String
    Public email_email As String
    Public user_pass As String

End Class

Public Class user_roles

    Public id As Nullable(Of Integer) = Nothing
    Public role_name As String
End Class

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load


    Dim ArrayList_users As New ArrayList
    Dim MyUser1 As New userz
    myuser1.email_email = "1@test.com"
    myuser1.user_name = "myuser1"
    myuser1.user_pass = "mypass1"
    ArrayList_users.Add(MyUser1)



    Dim ArrayList_roles As New ArrayList
    Dim MyUserRoles1 As New user_roles
    MyUserRoles1.id = "1"
    MyUserRoles1.role_name = "Admin"
    ArrayList_roles.Add(MyUserRoles1)




    Dim myuser2 As New userz
    myuser2.email_email = "2@test.com"
    myuser2.user_name = "myuser2"
    myuser2.user_pass = "mypass2"
    ArrayList_users.Add(myuser2)


    Dim MyUserRoles2 As New user_roles
    MyUserRoles2.id = "1"
    MyUserRoles2.role_name = "Admin"
    ArrayList_roles.Add(MyUserRoles2)


    '############ REFLECTION PART ###############
    Dim MyArrayList As New ArrayList 'for Response

    Dim MyJoinTableClass As New JoinTables.userz_N_user_roles
    Dim t As Type = MyJoinTableClass.GetType

    t.InvokeMember("userz", BindingFlags.SetField, Nothing, MyJoinTableClass, New Object() {MyUser1})
    t.InvokeMember("user_roles", BindingFlags.SetField, Nothing, MyJoinTableClass, New Object() {MyUserRoles1})
    'MsgBox(MyUser1.user_name)
    MyArrayList.Add(MyJoinTableClass)

    Dim MyJoinTableClass2 As New JoinTables.userz_N_user_roles
    t = MyJoinTableClass2.GetType
    t.InvokeMember("userz", BindingFlags.SetField, Nothing, MyJoinTableClass, New Object() {myuser2})
    t.InvokeMember("user_roles", BindingFlags.SetField, Nothing, MyJoinTableClass, New Object() {MyUserRoles2})

    MyArrayList.Add(MyJoinTableClass)


    Dim filledJoinCls1 As New JoinTables.userz_N_user_roles
    filledJoinCls1 = MyArrayList(0)
    Dim filledJoinCls1_user1 As New userz
    filledJoinCls1_user1 = filledJoinCls1.userz

    MsgBox(filledJoinCls1_user1.user_name)

    Dim filledJoinCls2 As New JoinTables.userz_N_user_roles
    filledJoinCls2 = MyArrayList(1)
    Dim filledJoinCls2_user2 As New userz
    filledJoinCls2_user2 = filledJoinCls2.userz
    MsgBox(filledJoinCls1_user1.user_name & " - " & filledJoinCls2_user2.user_name)

End Sub

Output does not work as expected! Shows the same result!

Serkan
  • 1
  • 2

1 Answers1

-1

See below,

public class Employee
{
    private long emplNbr;
    private string name;

    public long EmployeeNumber
    {
        get { return emplNbr; }
        set { emplNbr = value; }
    }

    public string EmployeeName
    {
        get { return name; }
        set { name = value; }
    }
}

Creating an Array of Objects

Employee[] StaffMembers = new Employee[2];

Initializing an Array of Objects

StaffMembers[0] = new Employee();
StaffMembers[0].EmployeeNumber = 20204;
StaffMembers[0].EmployeeName = "Harry Fields";

StaffMembers[1] = new Employee();
StaffMembers[1].EmployeeNumber = 92857;
StaffMembers[1].EmployeeName = "Jennifer Almonds";
INDIA IT TECH
  • 1,902
  • 4
  • 12
  • 25