zoukankan      html  css  js  c++  java
  • 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]);

  • 相关阅读:
    第十四节、FAST角点检测(附源码)
    第三十六节,目标检测之yolo源码解析
    《理财市场情绪监测系统》代码实现【1】之行业词库
    python numpy 下载地址
    hive 添加自增列
    excel做回归分析的应用【风控数据分析】
    SELECT a.loginname,a.deviceid,a.time,Row_Number() OVER (partition by a.loginname ORDER BY a.deviceid desc,a.time asc) rank
    hive cst 时间转换
    hive以文件创建表
    以当前日期命名或复制文件夹
  • 原文地址:https://www.cnblogs.com/zwei1121/p/8391464.html
Copyright © 2011-2022 走看看