Asp.net 类中使用中括号([......])的作用
生活随笔
收集整理的這篇文章主要介紹了
Asp.net 类中使用中括号([......])的作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于類似于這樣的說明標記[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethod
Type.Delete, true)]
該標記不起任何實際作用,僅是告訴vs該語句下面的方法(Method)是ObjectDataSource的默認綁定方法
標記的作用是為了讓編譯器更好的為ObjectDatasource向導找到合適的方法
下面的代碼示例演示如何將 DataObjectMethodAttribute 屬性應用于一個公共公開的方法,并標識該方法所執行的數據操作類型及該方法是否是該類型的默認數據方法。在此示例中,NorthwindData 類型公開兩個數據方法:一個方法名為 GetAllEmployees,用于檢索一組數據;另一個方法名為 DeleteEmployeeByID,用于刪除數據。將 DataObjectMethodAttribute 屬性同時應用于這兩個方法,將 GetAllEmployees 方法標記為“Select”數據操作的默認方法,將 DeleteEmployeeByID 方法標記為“Delete”數據操作的默認方法。
C#
?復制代碼
[DataObjectAttribute]
public class NorthwindData
{ ?
? public NorthwindData() {}
? [DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
? public static IEnumerable GetAllEmployees()
? {
? AccessDataSource ads = new AccessDataSource();
? ads.DataSourceMode = SqlDataSourceMode.DataReader;
? ads.DataFile = "~//App_Data//Northwind.mdb";
? ads.SelectCommand = "SELECT EmployeeID,FirstName,LastName FROM Employees";
? return ads.Select(DataSourceSelectArguments.Empty);
? }
? // Delete the Employee by ID.
? [DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
? public void DeleteEmployeeByID(int employeeID)
? {
? throw new Exception("The value passed to the delete method is "
? + employeeID.ToString());
? }
}
解釋一下各位對于那些方括號的疑問,那個東西叫做Attribute(中文不知道該翻譯成什么比較合適),主要是反射的時候用,本文中的這些Attribute非常的簡單,僅僅是告訴反射的用戶這個方法是干什么用的,以及是不是默認使用這個方法(似乎有些拗口,我們還是舉例子吧)?
e.g.?
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]?
public Northwind.ProductsDataTable GetProducts()?
{?
return Adapter.GetProducts();?
}?
其中,System.ComponentModel.DataObjectMethodType.Select說明這是一個用于Select的方法,true說明這是默認的用于Select的方法?
所以,相對的?
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]?
public Northwind.ProductsDataTable GetProductByProductID(int productID)?
{?
return Adapter.GetProductByProductID(productID);?
}?
就說明這是一個用于Select的方法,但是它不是默認的用于Select的方法?
需要說明的是,上面所討論的System.ComponentModel.DataObjectMethodAttribute是針對ProductsBLL而言的,也就是說當反射ProductsBLL的時候,這些東西就可以用了(注意:ProductsBLL是被標記為System.ComponentModel.DataObject的一個類,所以才可以用這些Attribute,否則會出問題的)?
再簡要的說明一下“反射”,我們在往設計器里面添加一個控件后,都可以使用屬性窗口,這個屬性窗口里面能顯示這個控件的一些相關的東西,這個就是反射一種用法
Type.Delete, true)]
該標記不起任何實際作用,僅是告訴vs該語句下面的方法(Method)是ObjectDataSource的默認綁定方法
標記的作用是為了讓編譯器更好的為ObjectDatasource向導找到合適的方法
下面的代碼示例演示如何將 DataObjectMethodAttribute 屬性應用于一個公共公開的方法,并標識該方法所執行的數據操作類型及該方法是否是該類型的默認數據方法。在此示例中,NorthwindData 類型公開兩個數據方法:一個方法名為 GetAllEmployees,用于檢索一組數據;另一個方法名為 DeleteEmployeeByID,用于刪除數據。將 DataObjectMethodAttribute 屬性同時應用于這兩個方法,將 GetAllEmployees 方法標記為“Select”數據操作的默認方法,將 DeleteEmployeeByID 方法標記為“Delete”數據操作的默認方法。
C#
?復制代碼
[DataObjectAttribute]
public class NorthwindData
{ ?
? public NorthwindData() {}
? [DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
? public static IEnumerable GetAllEmployees()
? {
? AccessDataSource ads = new AccessDataSource();
? ads.DataSourceMode = SqlDataSourceMode.DataReader;
? ads.DataFile = "~//App_Data//Northwind.mdb";
? ads.SelectCommand = "SELECT EmployeeID,FirstName,LastName FROM Employees";
? return ads.Select(DataSourceSelectArguments.Empty);
? }
? // Delete the Employee by ID.
? [DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
? public void DeleteEmployeeByID(int employeeID)
? {
? throw new Exception("The value passed to the delete method is "
? + employeeID.ToString());
? }
}
解釋一下各位對于那些方括號的疑問,那個東西叫做Attribute(中文不知道該翻譯成什么比較合適),主要是反射的時候用,本文中的這些Attribute非常的簡單,僅僅是告訴反射的用戶這個方法是干什么用的,以及是不是默認使用這個方法(似乎有些拗口,我們還是舉例子吧)?
e.g.?
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]?
public Northwind.ProductsDataTable GetProducts()?
{?
return Adapter.GetProducts();?
}?
其中,System.ComponentModel.DataObjectMethodType.Select說明這是一個用于Select的方法,true說明這是默認的用于Select的方法?
所以,相對的?
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]?
public Northwind.ProductsDataTable GetProductByProductID(int productID)?
{?
return Adapter.GetProductByProductID(productID);?
}?
就說明這是一個用于Select的方法,但是它不是默認的用于Select的方法?
需要說明的是,上面所討論的System.ComponentModel.DataObjectMethodAttribute是針對ProductsBLL而言的,也就是說當反射ProductsBLL的時候,這些東西就可以用了(注意:ProductsBLL是被標記為System.ComponentModel.DataObject的一個類,所以才可以用這些Attribute,否則會出問題的)?
再簡要的說明一下“反射”,我們在往設計器里面添加一個控件后,都可以使用屬性窗口,這個屬性窗口里面能顯示這個控件的一些相關的東西,這個就是反射一種用法
轉載于:https://www.cnblogs.com/zhongcj/archive/2008/07/24/1250634.html
總結
以上是生活随笔為你收集整理的Asp.net 类中使用中括号([......])的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC打印艰难之路
- 下一篇: shell中if条件字符串、数字比对,[