先定义下要获取的实体:

  public class InputClass
{
public long Id { get; set; }
public int Status { get; set; } public DateTime UdpateTime { get; set; }
}

将url参数转换成对应字典类型

       private Dictionary<string, string> GetInputNameValues(string value)
{
var array = value.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
char[] split = new char[] { '=' };
Dictionary<string, string> result = new Dictionary<string, string>(array.Length);
foreach (var item in array)
{
var tempArr = item.Split(split, StringSplitOptions.RemoveEmptyEntries);
if (tempArr.Length == 2)
{
result.Add(tempArr[0], tempArr[1]);
}
}
return result;
}

将实体类转换字典方法:

        private Dictionary<string, System.Reflection.PropertyInfo> GetProperty(Type type)
{
var pro = type.GetProperties();
var result = new Dictionary<string, PropertyInfo>(pro.Length);
var jsonPropertyType = typeof(JsonPropertyAttribute);
foreach (var item in pro)
{
var name = item.Name;
var jsonpList = (JsonPropertyAttribute[])(item.GetCustomAttributes(jsonPropertyType, false));
if (jsonpList.Length > 0)
{
var jsonp = jsonpList.First();
JsonPropertyAttribute att = new JsonPropertyAttribute();
name = jsonp.PropertyName;
}
result.Add(name, item);
}
return result;
}

主方法:

            var type = typeof(InputClass);
string inputString = "Id=1111&Status=1&UdpateTime=2015-5-9";
var model = new InputClass();
var nameValues = GetInputNameValues(inputString);
var propertyKeys = GetProperty(type);
foreach (var item in propertyKeys)
{
string value;
if (nameValues.TryGetValue(item.Key, out value))
{
item.Value.SetValue(model, Convert.ChangeType(value, item.Value.PropertyType));
}
}
return model;

返回的model 就是封装好的实体。

把URL传递参数转变成自定义实体方法的更多相关文章

  1. PHP获取不到url传递参数中#&等特殊字符解决方法

    有些符号在URL中是不能直接传递的,无法传入PHP处理,比如#&等符号,通过$_GET是获取不到的,比如一个域名https://localhost/url.php?url=yangyufei+ ...

  2. Spring MVC(六)--通过URL传递参数

    URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...

  3. 【Django】url传递参数

    1.  url传递参数的特殊字符 在压缩后,可能出现  +  -  = 空格  这类特殊字符,需要在传递前进行url编码  urllib.enquote(string) 获取参数后 urllib.un ...

  4. 8)django-示例(url传递参数)

    url传递参数有两种,一个是通过普通分组方式,一个是通过带命名分组方式 1.传递方式 1)普通分组方式,传递参数顺序是严格的.如下例子 url(r'^detail-(\d+)-(\d+).html', ...

  5. html5页面与android页面之间通过url传递参数

    html5页面与android页面之间可以通过url传递参数,android将参数放在htm5的url  ?后面,js获取url  ?号后面的参数. 方法一: <scrīpt> /* 用途 ...

  6. 用URL传递参数

    用URL传递参数,在园子里找到一篇文章解决了自己的问题,地址如下:http://www.cnblogs.com/lolicon/archive/2009/01/19/1378408.html

  7. 关于Url传递参数

    Url传递参数时,后台取值会直接取等号后面的内容,包括引号在内. 比如:   http://localhost:8080/user?name='admin' 这是错误的做法,后台获取到的参数是包括引号 ...

  8. vue-router 利用url传递参数

    vue-router 利用url传递参数 :冒号的形式传递参数  在路由配置文件里以:冒号的形式传递参数,这就是对参数的绑定. 1. 在配置文件里以冒号的形式设置参数.我们在/src/router/i ...

  9. Vue-router 第5节 vue-router利用url传递参数

    Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...

随机推荐

  1. 一个实际的sonar代码检查的配置文件

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. HDU 3452 Bonsai(网络流之最小割)

    题目地址:HDU 3452 最小割水题. 源点为根节点.再另设一汇点,汇点与叶子连边. 对叶子结点的推断是看度数是否为1. 代码例如以下: #include <iostream> #inc ...

  3. BZOJ 4291: [PA2015]Kieszonkowe 水题

    4291: [PA2015]Kieszonkowe Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...

  4. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] B. "Or" Game 线段树贪心

    B. "Or" Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/578 ...

  5. android学习日记21--消息提示之Toast和Notification

    1.Toast Toast译为土司,类似切片面包,用于弹出比较快速的及时提示信息.当Toast被显示时,虽然它悬浮应用程序最上方,但是并未获得焦点.它的设计就是为了提示有用的信息,而不打扰用户其他操作 ...

  6. pomelo 初始化配置...

    在创建app的时候会初始化master和server以及log配置.. /** * Initialize application configuration. */ module.exports.de ...

  7. js数组定义和获取其长度

    1.只有值组成的数组,必须先定义数组对象. 定义 var arrs=new array()或 var arrs=[]; 赋值: arrs[]="he";arrs[]="c ...

  8. 如何使用VSTS做压力测试

    1 前言 1.1 目的 本文档主要介绍如何在VSTS环境中进行LoadTest测试,给测试人员和初次使用者提供参考. 对该工具进行LoadTest测试的优劣进行简单的分析说明. 1.2 软件版本 本文 ...

  9. MySQL(6):数据操作

    1.创建数据(插入数据) (1)insert into  tab_name(字段列表)  values(值列表) (2)如果需要在插入时,为所有的字段设置值,那么可以省略字段列表.要求是值的顺序,应该 ...

  10. C语言结构体的引入

    #include <stdio.h> struct student{ int ID; ]; int age; }; int main(){ //赋值: , }; ,.name=}; , , ...