using System;
using System.Collections;
namespace Sp.Common
{
public class ConvertHelper
{
public static void LoadModel<T>(T model, Hashtable ht)
{
try
{
if (model == null) { model = default(T); }
Type t = typeof(T);
System.Reflection.PropertyInfo[] pros = t.GetProperties();
foreach (var pro in pros)
{
if (ht.ContainsKey(pro.Name) && null != ht[pro.Name])
{
if (pro.PropertyType.Name == "String" && (ht[pro.Name].GetType().Name == "JArray" || ht[pro.Name].GetType().Name == "JObject"))
ht[pro.Name] = Newtonsoft.Json.JsonConvert.SerializeObject(ht[pro.Name]);
if (pro.PropertyType.IsGenericType && pro.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
pro.SetValue(model, Convert.ChangeType(ht[pro.Name], Nullable.GetUnderlyingType(pro.PropertyType)), null);
else if (pro.PropertyType.IsArray)
{
//pro.SetValue(model,Convert.ChangeType(
}
else
pro.SetValue(model, Convert.ChangeType(ht[pro.Name], pro.PropertyType), null);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}