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();
}
明天你会感激你今天所做的努力。
原文地址:https://www.cnblogs.com/Torey/p/7140785.html