【发布时间】:2017-12-07 20:14:05
【问题描述】:
目前我正在从数据库中接收一组对象。
object [] sqlResultData = DatabaseCall.Result();
这个对象数组需要和这样的类变量匹配
CClassOfVars classVar = new CClassOfVars();
classVar.myProperty = sqlResultData[0];
classVar.myProperty1 = sqlResultData[1];
我想要做的是将类上的属性列表传递给函数,并根据顺序自动发生来自对象数组的映射。
例如:
这样定义的方法
FillData(object [] databaseValues, IList<object>())
这样称呼
CClassOfVars classVar = new CClassOfVars();
object [] sqlResultData = DatabaseCall.Result();
FillData(sqlResultData, new List<object>(){classVar.myProperty,classVar.myProperty1});
FillData 函数有望进行类型转换并将 myProperty 和 myProperty1 的值设置为 0,1 等数组位置中的值...
类似的东西
FillData(object [] databaseValues, IList<object> mapMe)
{
for (int i = 0; i < mapMe.Count; i++)
{
mapMe[i] = CastToTheCorrectType(mapMe[i], databaseValues[i]);
}
}
转换为正确的类型可能看起来像这样??我从这里拿的:cast object with a Type variable
public T CastToTheCorrectType<T>(T hackToInferNeededType, object givenObject) where T : class
{
return givenObject as T;
}
如何将不同对象类型的列表传递给所有在不同函数中修改和分配的值?
【问题讨论】:
-
看看dapper或者实体框架,就不需要这样的hack了