我有3个班级
public abstract class RelacionamentoComercial
{
public string cod_usu { get; set; }
public IList<Endereco> endereco { get; set; }
}
public class Usuario: RelacionamentoComercial
{
public string senha { get; set; }
public string cod_est { get; set; }
}
public class Endereco
{
public string endereco { get; set; }
public string bairro { get; set; }
}
我正在使用DAO Connections,
public Usuario Save(Usuario usuario)
{var table = abstractDAO.OpenTable(TableName);
table .Seek(usuario.cod_usu);
PropertyInfo[] properties = usuario.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object propertyValue = property.GetValue(usuario, null);
if (propertyValue != null)
{
if (propertyValue.GetType() == typeof(int))
table.PutInteger(property.Name.ToUpper(), Convert.ToInt32(propertyValue));
else if (propertyValue.GetType() == typeof(double))
table.PutDouble(property.Name.ToUpper(), Convert.ToDouble(propertyValue));
else if (propertyValue.GetType() == typeof(bool))
table.PutBoolean(property.Name.ToUpper(), Convert.ToBoolean(propertyValue));
else if (propertyValue.GetType() == typeof(DateTime))
table.PutDate(property.Name.ToUpper(), Convert.ToDateTime(propertyValue));
else if (propertyValue.GetType() == typeof(string))
table.PutString(property.Name.ToUpper(), Convert.ToString(propertyValue));
else if (propertyValue.GetType().GetGenericTypeDefinition() == typeof(List<>))
{
<<<< ? >>>>
}
我想获得一个List&lt; Endereco&gt;保存在Clientes,但我不知道该怎么做,我已经尝试过反射
PropertyInfo[] propList = propertyValue.GetType().GetProperties();
foreach (PropertyInfo prop in propList)
但没用, 如果有人有更好的想法,请
答案 0 :(得分:0)
我建议尝试类似的事情:
public static object ConvertList(List<object> value, Type type)
{
var listType = type.GenericTypeArguments.First();
return value.Select(item => Convert.ChangeType(item, listType));
}
这应该可以解决问题。