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

本文介绍了一款C#日志工具类,该工具能够获取并格式化对象的属性及值,适用于记录数据更改和删除操作的日志。通过反射机制遍历对象属性,将属性名与对应的值组合成字符串,便于后续日志分析。

对于经常对数据操作的开发者来说,一条记录(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();
        }
    }

 

转载于:https://www.cnblogs.com/wanzegui325/archive/2013/01/07/GetInstancePropertyNameValue.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值