[C#.NET] 使用反射取得泛型屬性裡的型別

[C#.NET] 使用反射取得泛型屬性裡的型別

筆記一下:

我有一個 DbContext 類別,我想要把 DbSet<Account> Accounts 裡的 Account 類別成員取出來,如下圖:

image

 

透過 p.PropertyType.GetGenericArguments() 取得泛型屬性裡的物件,由於它會回傳集合,所以用 First() 讓它回傳單筆物件

var queryEntities = from p in typeof(MyDbContext).GetProperties()
                    where p.PropertyType.IsGenericType
                          && p.PropertyType.GetGenericTypeDefinition() == typeof(DbSet<>)
                    select p.PropertyType.GetGenericArguments().First();

image

 


文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/08/04/146163.aspx

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo