Attribute/特性心得随笔

复制代码 代码如下:

  <p>/*</p><p>*特性</p><p>*/</p>

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  /// <summary>

  /// DisAttribute 的摘要说明

  /// </summary>

  public class DisAttribute : Attribute

  {

  private string _message;

  /// <summary>

  /// 描述

  /// </summary>

  public string Message

  {

  get { return _message; }

  }

  public DisAttribute(string message)

  {

  this._message = message;

  }

  }

  /*

  *类

  */

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.EnterpriseServices;

  using System.Linq;

  using System.Web;

  using System.Web.DynamicData;

  /// <summary>

  /// User 的摘要说明

  /// </summary>

  [DisAttribute("User"),TableName("user"),Description("user")]

  public class User

  {

  private int? _id;

  /// <summary>

  /// Id

  /// </summary>

  [DisAttribute("主键")]

  public int? Id

  {

  get { return _id; }

  set { _id = value; }

  }

  private string _name;

  /// <summary>

  /// 名称

  /// </summary>

  [DisAttribute("名称")]

  public string Name

  {

  get { return _name; }

  set { _name = value; }

  }

  }

  /*

  *获取

  */

  

复制代码 代码如下:

  //获取特性

  User u = new User();

  Type _t = u.GetType();

  foreach (Attribute a in _t.GetCustomAttributes(true))

  {

  if (a.GetType().ToString() == "DisAttribute")

  {

  DisAttribute _da = (DisAttribute)a;

  if (_da != null)

  {

  Response.Write(_da.Message + "<br>");

  }

  }

  }

  //获取所有属性

  u.Id = 888888;

  u.Name = "陈奕迅";

  foreach (PropertyInfo item in _t.GetProperties())

  {

  //特性

  Attribute atr = item.GetCustomAttribute(typeof(DisAttribute));

  if (atr.GetType().ToString() == "DisAttribute")

  {

  DisAttribute _da = (DisAttribute)atr;

  if (_da != null)

  {

  Response.Write(_da.Message + "<br>");

  }

  }

  }