• QueryString to Dictionary<string, string>


    public class ModelConvertHelper<T> where T : new() {// 此处一定要加上new()
    public static IList<T> ConvertToModel(DataTable dt) {

    IList<T> ts = new List<T>();// 定义集合
    Type type = typeof(T); // 获得此模型的类型
    string tempName = "";
    foreach (DataRow dr in dt.Rows) {
    T t = new T();
    PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性
    foreach (PropertyInfo pi in propertys) {
    tempName = pi.Name;
    if (dt.Columns.Contains(tempName)) {
    if (!pi.CanWrite) continue;
    object value = dr[tempName];
    if (pi.PropertyType.Name == "String") {
    pi.SetValue(t, Convert.ToString(value), null);
    } else if (pi.PropertyType.Name == "Boolean") {
    pi.SetValue(t, Convert.ToBoolean(value), null);
    } else if (value != DBNull.Value) {
    pi.SetValue(t, value, null);
    }
    }
    }
    ts.Add(t);
    }
    return ts;
    }
    }



    public static void SetProperties<T>(this T source, HttpContext context) {

    var properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public);
    var values = HttpContext.Current.Request.QueryString;
    foreach (var prop in properties) {
    if (values.AllKeys.Contains(prop.Name)) {
    var propertyValue = values[prop.Name];
    //prop.SetValue(source, propertyValue);

    if (!prop.PropertyType.IsGenericType) {
    prop.SetValue(source, string.IsNullOrEmpty(propertyValue) ? null : Convert.ChangeType(propertyValue, prop.PropertyType));
    } else {
    Type genericTypeDefinition = prop.PropertyType.GetGenericTypeDefinition();
    if (genericTypeDefinition == typeof(Nullable<>)) {
    prop.SetValue(source, string.IsNullOrEmpty(propertyValue) ? null : Convert.ChangeType(propertyValue, Nullable.GetUnderlyingType(prop.PropertyType)));
    }
    }
    }
    }

    
    }
    mode.SetProperties(HttpContext.Current);

    Dictionary<string, string> dict = HttpContext.Current.Request.QueryString.Keys.Cast<string>()
    .ToDictionary(k => k, v => HttpContext.Current.Request.QueryString[v]);

  • 相关阅读:
    Web APP开发技巧总结
    2015年 移动开发都有哪些热点?
    手机APP UI设计尺寸基础知识
    最新Android & iOS设计尺寸规范
    给iOS开发者的Android开发建议
    Android 应用开发推荐书单
    Android 你应该知道的学习资源 进阶之路贵在坚持
    一篇文章让你读懂iOS和Android的历史起源
    Android平台上最好的几款免费的代码编辑器
    Google 发布的15个 Android 性能优化典范
  • 原文地址:https://www.cnblogs.com/zwei1121/p/8391464.html
Copyright © 2020-2023  润新知