zoukankan      html  css  js  c++  java
  • Attribute 特性

    //数据库表名与类名不一致时,用到的特性
    public class TableAttribute : Attribute
    {
    private string _TableName = null;
    
    public TableAttribute(string tableName)
    {
    this._TableName = tableName;
    }
    
    public string GetTableName()
    {
    return this._TableName;
    }
    
    }
    
    public static class Extend
    {
    /// <summary>
    /// 根据类型获取表名称
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="t"></param>
    /// <returns></returns>
    public static string GetTableName<T>(this T t) where T : new()
    {
    Type type = t.GetType();
    object[] oAttributeList = type.GetCustomAttributes(true);
    foreach (var item in oAttributeList)
    {
    if (item is TableAttribute)
    {
    TableAttribute attribute = item as TableAttribute;
    return attribute.GetTableName();
    }
    }
    
    return type.Name;
    }
    }
    
    static void Main(string[] args)
    {
    try
    {
    Console.WriteLine("欢迎来到.net高级班vip课程,今天的内容是特性和AOP");
    People people = new People();
    
    UserModel user = new UserModel();
    user.Id = 1;
    
    string name = user.GetTableName<UserModel>();
    
    string remark = UserState.Normal.GetRemark();
    
    BaseDAL.Save<UserModel>(user);
    
    
    #region AOP show
    Console.WriteLine("***********************");
    Decorator.Show();
    Console.WriteLine("***********************");
    Proxy.Show();
    Console.WriteLine("***********************");
    CastleProxy.Show();
    Console.WriteLine("***********************");
    UnityAOP.Show();
    #endregion
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    Console.Read();
    }
    明天你会感激你今天所做的努力。
  • 相关阅读:
    视图组件之开关按钮
    单选框与复选框的实现
    String、StringBuffer 、StringBuilder 的区别(转)
    布局管理器之相对布局(二)
    布局管理器之相对布局(一)
    帧布局 FrameLayout
    表格布局TableLayout
    布局管理器中的线性布局
    36选7
    冒泡
  • 原文地址:https://www.cnblogs.com/Torey/p/7140785.html
Copyright © 2011-2022 走看看