.NET易忘备留 通用函数

1.枚举 

<select id="accountType" name="accountType">
<option value="">---所有---</option>
@foreach (var item in Lib4Net.Comm.EnumHelper.GeMembertValues<PSAccountType>())

     <option value="@((int)item)">@item.GetDescription()</option>
}
</select>

2.获取枚举描述
 /// <summary>
 /// 获取对象描述信息
 /// </summary>
/// <param name="input"></param>
 /// <returns></returns>
 public static string GetDescription(this object input)
{
  if (input == null)
     return string.Empty;
   Type enumType = input.GetType();
   if (!enumType.IsEnum)
  {
    return string.Empty;
      }
      var name = Enum.GetName(enumType, Convert.ToInt32(input));
  if (name == null)
  return string.Empty;
  object[] objs = enumType.GetField(name).GetCustomAttributes(typeof(DescriptionAttribute), false);
  if (objs == null || objs.Length == 0)
  {
    return string.Empty;
   }
  else
  {
    DescriptionAttribute attr = objs[0] as DescriptionAttribute;
    return attr.Description;
  }
}

3.字符串显示或处理

/// <summary>
/// 如果数据为空就显示为-
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string ToCustomerString(this object input)
{
  if (input == null)
    return "---";
  else
    return input.ToString();
}


/// <summary>
/// 完成操作:
/// 1.Trim,去掉前后空格
/// 2.将空字符串设置成为null
/// </summary>
/// <param name="input">对象</param>
public static void CustomizeTrim(this object input)
{
  if (input != null)
  {
    Type type = input.GetType();
    PropertyInfo[] infos = type.GetProperties();
    object val = null;
    string strval = null;
    foreach (PropertyInfo info in infos)
    {
      val = info.GetValue(input, null);
      if (val != null)
      {
        if (val.GetType().FullName == typeof(string).FullName)
        {
          strval = val as string;
                            if (string.IsNullOrWhiteSpace(strval))
                            {
                                strval = null;
                            }
                            else
                            {
                                strval = strval.Trim();
                            }
                            if (info.CanWrite)
                            {
                                info.SetValue(input, strval, null);
                            }
        }
      }

            }
  }

}

posted @ 2012-09-13 09:27  流失的痕迹  阅读(274)  评论(0编辑  收藏  举报