如果以下情况可行,我试图解决,我已经做了很多谷歌搜索,我有点困惑。我非常确定我可以在对象类上进行类反射,并且一旦我有循环就更新数据库不是问题,但如果可能的话,我无法解决问题。
如果我使用固定的类对象进行此操作,那么我很容易做到:
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
}
答案 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.
}
}