程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#的特性(Attribute)的應用(2)

C#的特性(Attribute)的應用(2)

編輯:關於C語言

特性也是一個Class類型,可以有多個構造函數,就像C#的new語句一樣,我們向類型附加特性時可以使用不同的初始化參數來指明使用特性的那個構造函數。我們附加特性時還可以使用“屬性名=屬性值”的方法來直接指明特性的屬性值。該特性中定義了一個TableName屬性,該屬性就是被修飾的對象所映射的數據庫表的名稱。

下面我們舉一個使用特性來進行O/RMapping的例子

用戶類:

Code
  [Table("UserInfo")]
  public class UserInfo
  {
    private int userId;
    [Column("UserId",DbType.Int32)]
    public int UserId
    {
      get { return userId; }
      set { userId = value; }
    }
    private string userName;
    [Column(UserName,DbType.String)]
    public string UserName
    {
      get { return userName; }
      set { userName = value; }
    }
  }

列特性:

Code
[AttributeUsage(AttributeTargets.Property,AllowMultiple=false,Inherited=false)]
  public class ColumnAttribute : Attribute
  {
    public ColumnAttribute()
    {
      this.columnName = null;
      this.dbType = DbType.String;
    }
    public ColumnAttribute(string columnName)
    {
      this.columnName = columnName;
    }
    public ColumnAttribute(string columnName, DbType dbType)
      : this(columnName)
    {
      this.dbType = dbType;
    }
    private string columnName;
    public string ColumnName
    {
      get { return columnName; }
      set { columnName = value; }
    }
    private DbType dbType;
    public DbType DbType
    {
      get { return dbType; }
      set { dbType = value; }
    }

  }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved