【Microbar 】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,否則會出問題的)
再簡要的說明一下“反射”,我們在往設計器裡面新增一個控制元件後,都可以使用屬性視窗,這個屬性視窗裡面能顯示這個控制元件的一些相關的東西,這個就是反射一種用法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-409984/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正規表示式中括號[]字元類字元
- 正規表示式 中括號[] 字元類字元
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- Matlab中的括號()[]{}Matlab
- JSON 字串中的中括號和大括號區別詳解JSON字串
- python的學習(三)----中括號的使用Python
- [PHP字串]②--花括號{}的作用PHP字串
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- 正則中括號點符號符號
- 萬用字元 and [] 中括號的用法字元
- 在word文件中全部的文字出現了灰色背景,而且有中括號括起。
- leecode856.括號中的分數
- js正規表示式獲取字串中多個大括號{}中的內容,包括大括號並放入陣列中JS字串陣列
- Yaml中特殊符號"| > |+ |-"的作用YAML符號
- eval() JSON轉換 小括號 () 作用JSON
- Python中各種括號的區別、用途及使用方法Python
- JavaScript取出字串中括號裡的內容JavaScript字串
- SQL中多條件查詢括號的用途SQL
- Vim中設定括號自動補全
- Python中雙冒號的作用Python
- (譯) javascript中的物件,方括號和演算法JavaScript物件演算法
- spring中各個類的作用Spring
- 詳解中括號語法及點語法
- Linux Shell中各種括號用法總結!Linux
- python3中 print不加括號報錯!Python
- Vim常用操作-快速刪除括號中內容。
- 物件點查詢和中括號查詢的區別物件
- js中逗號(,)的作用是什麼JS
- js 物件使用點和中括號存取屬性區別是什麼JS物件
- Markdown 編輯器 中書寫多行大括號公式公式
- JS 中函式名後面加與不加括號的區別JS函式
- mysql 中資料型別tinyint(2)括號中的數字意思MySql資料型別
- eval()進行json轉換時新增小括號()的作用JSON
- [C++]括號使用小技巧C++
- linux 中正規表示式中?號的作用Linux
- python定義類不寫括號嗎Python
- toString().intern()中的intern()中的作用和使用
- C# 正規表示式提取字串中括號裡的值C#字串