代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
实体类、字符串互相转换
作者:
kunkun0921
/ 发布于
2015/1/26
/
595
using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { /// <summary> /// 实体类、字符串互相转换 /// </summary> public class PackReflectionEntity<T> { /// <summary> /// 将实体类通过反射组装成字符串 /// </summary> /// <param name="t">实体类</param> /// <returns>组装的字符串</returns> public static string GetEntityToString(T t) { System.Text.StringBuilder sb = new StringBuilder(); Type type = t.GetType(); System.Reflection.PropertyInfo[] propertyInfos = type.GetProperties(); for (int i = 0; i < propertyInfos.Length; i++) { sb.Append(propertyInfos[i].Name + ":" + propertyInfos[i].GetValue(t, null) + ","); } return sb.ToString().TrimEnd(new char[] { ',' }); } /// <summary> /// 将反射得到字符串转换为对象 /// </summary> /// <param name="str">反射得到的字符串</param> /// <returns>实体类</returns> public static T GetEntityStringToEntity(string str) { string[] array = str.Split(','); string[] temp = null; Dictionary<string, string> dictionary = new Dictionary<string, string>(); foreach (string s in array) { temp = s.Split(':'); dictionary.Add(temp[0], temp[1]); } System.Reflection.Assembly assembly = System.Reflection.Assembly.GetAssembly(typeof(T)); T entry = (T)assembly.CreateInstance(typeof(T).FullName); System.Text.StringBuilder sb = new StringBuilder(); Type type = entry.GetType(); System.Reflection.PropertyInfo[] propertyInfos = type.GetProperties(); for (int i = 0; i < propertyInfos.Length; i++) { foreach (string key in dictionary.Keys) { if (propertyInfos[i].Name == key.ToString()) { propertyInfos[i].SetValue(entry, GetObject(propertyInfos[i], dictionary[key]), null); break; } } } return entry; } /// <summary> /// 转换值的类型 /// </summary> /// <param name="p"></param> /// <param name="value"></param> /// <returns></returns> static object GetObject(System.Reflection.PropertyInfo p, string value) { switch (p.PropertyType.Name.ToString().ToLower()) { case "int16": return Convert.ToInt16(value); case "int32": return Convert.ToInt32(value); case "int64": return Convert.ToInt64(value); case "string": return Convert.ToString(value); case "datetime": return Convert.ToDateTime(value); case "boolean": return Convert.ToBoolean(value); case "char": return Convert.ToChar(value); case "double": return Convert.ToDouble(value); default: return value; } } } }
试试其它关键字
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
kunkun0921
贡献的其它代码
(
40
)
.
linq 基本方法
.
Form窗体关闭原因
.
消除button按下出现的虚线
.
GUID转换为Int64
.
将窗体固定在显示器的左上角
.
获取进程或线程的相关信息
.
判断当前操作用户的管理角色
.
两个DataTable的加减乘除
.
视频API类 摄像头
.
集合、DataTable互转
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3