☆用心生活☆-wonder-{改变自己才能让自己过上不一样的日子。为自己加油!}

获取对象属性和值 日志记录

对于经常对数据操作的开发者来说,一条记录(MODEL)的数据更改提交,删除等操作,会记录每条记录的详细信息,写入日志表,因此可以采用下面这代码生成一个字符串进行日志记录。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// 日志工具类
    /// </summary>
    public class LogHelper
    {
        /// <summary>
        /// 获取每个对象包含的属性及值的一条字符串,默认以逗号分割
        /// </summary>
        /// <typeparam name="T">目标类型</typeparam>
        /// <param name="item">目标类型对象(实例)</param>
        /// <returns></returns>
        public static string GetInstancePropertyNameValue<T>(T item)
        {
            Type t = typeof(T);
            StringBuilder sb = new StringBuilder();
             System.Reflection.PropertyInfo[] properties = t.GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);

            foreach (var i in properties)
            {
                string name = i.Name;
                object value = i.GetValue(item, null);

                if (i.PropertyType.IsValueType || i.PropertyType.Name.StartsWith("String"))
                {
                    sb.Append(string.Format("{0}:{1},", name, value is Nullable ? string.Empty : value));
                }

            }
            return sb.ToString();
        }
    }

 

posted @ 2013-01-07 17:30  ☆用心生活☆  阅读(301)  评论(0编辑  收藏  举报
本作者写的任何文章均属原创,若要转载,请注明出处;若
进行与文章有关的商业行为,本作者保留拥有诉诸法律追究
侵权的任何行为。文章只代表本人某一学习时间段内对某一
技术的说明,不代表具有绝对的正确性,若要学习,请与各
位高手编程人员讨论学习。本文章也不代表自己某一时期某
一公司的任何专著和机密文件。仅仅提供自我学习和他人学
习的文章参考,以及自我知识记录。wanzegui325#163.com