iT邦幫忙

2024 iThome 鐵人賽

0
自我挑戰組

ASP.NET Core生成網站記錄系列 第 30

DAY30- DAPPER鏈式調用

  • 分享至 

  • xImage
  •  

entity.GetType().GetProperties() 是一個鏈式調用,GetType() 和 GetProperties() 之間的關係是屬於 對象反射機制 的一部分。這兩個方法的結合允許你在運行時獲取一個實體類型的元數據。

讓我們逐步解釋這兩個方法及它們之間的關聯。

  1. entity.GetType()
    GetType() 是 所有對象 都繼承自 System.Object 類的一個方法,它返回當前對象的 Type 對象(即類型資訊)。

例如,如果你有一個變數 entity 代表一個 Product 類型的實例:

csharp
複製程式碼
var entity = new Product();
當你調用 entity.GetType() 時,它會返回 Product 類型的 Type 對象,這個對象包含了有關 Product 類型的所有元數據,如類名、屬性、方法等。

  1. Type.GetProperties()
    GetProperties() 是 Type 類中的方法,它返回一個 PropertyInfo 數組,這個數組包含了當前類型(即 Product 類型)的所有屬性。

因此,當你調用 entity.GetType().GetProperties() 時,它的作用如下:

entity.GetType() 先返回 entity 所屬類型(比如 Product 類)的元數據對象(Type 對象)。
GetProperties() 則是在該 Type 對象上調用的,它返回當前類型所有屬性的資訊,這些屬性以 PropertyInfo 對象的形式存在。
3. 鏈式調用的含義
csharp
複製程式碼
var props = entity.GetType().GetProperties();
這裡的鏈式調用可以分成兩步來看:

entity.GetType():獲取 entity 的類型(例如 Product),返回一個 Type 對象。
GetProperties():在這個 Type 對象上調用 GetProperties(),返回該類型的所有屬性資訊。
示例
假設你有以下 Product 類:

csharp
複製程式碼
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public decimal Price { get; set; }
}
當你執行以下代碼:

csharp
複製程式碼
var entity = new Product();
var props = entity.GetType().GetProperties();
這會做如下操作:

entity.GetType() 會返回 Product 類型的 Type 對象。
GetProperties() 則返回 Product 類的屬性列表:ProductId, ProductName, Price。


上一篇
DAY29-SESSION
下一篇
DAY31- SQL生成
系列文
ASP.NET Core生成網站記錄31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言