将变量类对象传递给类

时间:2014-12-02 11:05:02

标签: c#

如果以下情况可行,我试图解决,我已经做了很多谷歌搜索,我有点困惑。我非常确定我可以在对象类上进行类反射,并且一旦我有循环就更新数据库不是问题,但如果可能的话,我无法解决问题。

如果我使用固定的类对象进行此操作,那么我很容易做到:

public void updateDB(obj_Users myObject)

但是由于我有很多类对象需要很长时间,所以试图让它更具动态性。

以下是我想要传递的类的示例(但可以是遵循相同格式的任何类型):

public class obj_Users
{
    public Int32 UserID { get; set; }
    public String UserName { get; set; }
    public String FirstName { get; set; }
    public String Surname { get; set; }
    public String Email { get; set; }
    public Int32 UserRole { get; set; }
    public Int32 UserCompanyID { get; set; }
    public String UserPassword { get; set; }
    public Boolean IsAdmin { get; set; }
    public String SessionKey { get; set; }
}

以下是我试图解释的一些假代码:

public void updateDB(AnyClassObject obj_Users)
{
    // Loop through obj_Users and grab the properties

    // DB update call
}

4 个答案:

答案 0 :(得分:0)

尝试循环以获取属性

foreach(var prop in obj_Users.GetType().GetProperties()) {
    //use your props
}

答案 1 :(得分:0)

此:

public void updateDB(object paramobj)
{
    foreach(var prop in paramobj.GetType().GetProperties())
    {
           //grab
    }
    // update
 }

答案 2 :(得分:0)

您只需要将参数设置为object类型即可传递任何类或结构的实例。

public void updateDB(object whatever)
{
    foreach(var prop in whatever.GetType().GetProperties())
    {
       ... //do stuff
    }
} 

答案 3 :(得分:0)

如果您遇到必须处理不同类的问题,通用方法应该符合您的需求:

public void UpdateDB<T>(T obj)
{
    var properties = typeof(T).GetProperties();

    foreach (var prop in properties)
    {
        // Here you loop through the properties.
    }
}
相关问题