• Attribute in c#


    业务需要 在类里附加一些属性。为了实现松耦合 。故在每个类里设置Attribute。

    做了1天半 简单搞了个demo

    代码
    1 /// <summary>
    2 /// 记录日志扩展属性
    3 /// </summary>
    4   [AttributeUsage(AttributeTargets.All,AllowMultiple=false,Inherited=false)]
    5 public class LogHelpAttribute : Attribute
    6 {
    7 protected string _iAction;
    8 protected bool _IsUse;
    9 /// <summary>
    10 ///
    11 /// </summary>
    12   public string iAction
    13 {
    14 get { return _iAction; }
    15 set { _iAction = value; }
    16 }
    17
    18 /// <summary>
    19 /// 是否使用
    20 /// </summary>
    21   public bool IsUse
    22 {
    23 get { return _IsUse; }
    24 set { _IsUse = value; }
    25 }
    26
    27
    28 }
    29 public class LogHelp
    30 {
    31
    32
    33
    34 }

    上面是设置附加属性的CS

    应用为:

    代码
    1 [LogHelp(iAction="News",IsUse=true)]
    2 public partial class News
    3 {
    4 ///<summary>
    5 ///添加数据
    6 ///</summary>
    7 ///<param name="m_News">实体类:NewsInfo</param>
    8 ///<returns>返回插入行的主键ID,插入失败返回-1或者Guid.Empty</returns>
    9   public static int Add(NewsInfo m_News){
    10 string s_strsql="insert into t_News(nTitle,nType,nContent,nUserID,createtime,Hits) values(@nTitle,@nType,@nContent,@nUserID,@createtime,@Hits);select scope_identity();";
    11 SqlParameter[] paramslist={
    12 new SqlParameter("@nTitle",m_News.NTitle),
    13 new SqlParameter("@nType",m_News.NType),
    14 new SqlParameter("@nContent",m_News.NContent),
    15 new SqlParameter("@nUserID",m_News.NUserID),
    16 new SqlParameter("@createtime",m_News.Createtime),
    17 new SqlParameter("@Hits",m_News.Hits)
    18 };
    19 object o=SqlHelper.ExecuteScalar(ConfigHelper.Connstring, CommandType.Text, s_strsql,paramslist);
    20 if(o!=null && o!=DBNull.Value){
    21 Type type=typeof(News);
    22 LogHelpAttribute loghelp;
    23 foreach(Attribute attr in type.GetCustomAttributes(true))
    24 {
    25 loghelp = attr as LogHelpAttribute;
    26 if (loghelp != null)
    27 {
    28 if (loghelp.IsUse)
    29 {
    30 int result = ITGoods.UI.PageLogHelp.Add( "添加数据",loghelp.iAction);
    31 }
    32 }
    33 }
    34
    35 return Convert.ToInt32(o);
    36 }
    37 return -1;
    38 }
    39 }
  • 相关阅读:
    吉哥系列故事――恨7不成妻
    K
    F
    树状数组
    34.在排序数组中查找元素的第一个和最后一个位置--二分查找
    CSS选择器及其权重
    CSS布局 圣杯和双飞翼
    983. 最低票价 -- 动态规划
    合并k个排序链表 二分
    面试题 16.03. 交点
  • 原文地址:https://www.cnblogs.com/starm/p/1640303.html
Copyright © 2020-2023  润新知