在.NET中,System.Reflection
命名空間提供了豐富的類和方法,用于在運行時檢查和操作類型、程序集、模塊、接口、成員等元數據信息。要獲取類型信息,你可以使用Type
類。以下是一些常見的方法來獲取類型信息:
typeof
操作符:
typeof
操作符用于獲取指定類型的Type
對象。例如,要獲取int
類型的Type
對象,你可以這樣做:Type intType = typeof(int);
typeof
操作符獲取泛型類型:
如果你有一個泛型類型,你可以使用typeof
操作符并傳遞類型參數來獲取其Type
對象。例如,要獲取List<int>
類型的Type
對象,你可以這樣做:Type listIntType = typeof(List<int>);
Type.GetType
方法:
Type.GetType
方法用于根據指定的全名獲取類型的Type
對象。全名包括命名空間和類型名稱。例如,要獲取System.Collections.Generic.List<int>
類型的Type
對象,你可以這樣做:Type listIntType = Type.GetType("System.Collections.Generic.List`1[System.Int32]");
注意:如果找不到指定的類型,GetType
方法將返回null
。
4. 使用Assembly.GetType
方法:
Assembly.GetType
方法用于根據指定的程序集和類型名稱獲取類型的Type
對象。例如,要獲取當前程序集中MyNamespace.MyClass
類型的Type
對象,你可以這樣做:
Type myClassType = Assembly.GetExecutingAssembly().GetType("MyNamespace.MyClass");
注意:如果找不到指定的類型,GetType
方法將返回null
。
5. 使用assembly.DefinedTypes
屬性:
你還可以通過訪問程序集的DefinedTypes
屬性來獲取程序集中定義的所有類型的列表。然后,你可以遍歷這個列表來查找你感興趣的類型。例如:
Assembly assembly = Assembly.GetExecutingAssembly();
foreach (Type type in assembly.DefinedTypes)
{
Console.WriteLine(type.FullName);
}
這些方法可以幫助你獲取類型的詳細信息,如名稱、基類、接口、字段、方法等。你可以使用這些信息來在運行時動態地創建對象、調用方法或訪問字段等。