」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何從C#中的字符串表示形式確定對像類型?

如何從C#中的字符串表示形式確定對像類型?

發佈於2025-02-08
瀏覽:609

C#中根據字符串表示確定對像類型

在C#中,可以將包含類型名稱的字符串轉換為相應的Type對象。但是,這種轉換所使用的方法取決於類型是在與調用代碼相同的程序集中定義,還是在不同的程序集中定義。

使用Type.GetType(string)

如果類型在同一個程序集中定義,可以使用Type.GetType(string)方法,並提供完全限定的類型名稱作為字符串。例如,要獲取int數據類型的Type,可以使用:

Type.GetType("System.Int32");

使用Assembly.GetType(string)

如果類型在不同的程序集中定義,則還需要提供程序集名稱。可以使用Assembly.GetType(string)方法來實現。首先,獲取對程序集的引用,然後使用該引用來獲取Type

Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");

命名空間和程序集限定

確保在提供給Type.GetType()Assembly.GetType()的字符串中包含類型的命名空間。此外,對於強命名程序集,可能需要包含完整的程序集標識,包括版本、區域性和公共密鑰標記。

示例場景

考慮以下場景,其中有一個字符串包含類型的完全限定名稱:

string typeName = "Namespace.MyClass, MyAssembly";

根據MyAssembly是否被調用程序集引用,可以使用Type.GetType()Assembly.GetType()

// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);

// 如果 MyAssembly 未被引用
Assembly asm = typeof(SomeKnownType).Assembly;
Type type2 = asm.GetType(typeName);

How to Determine Object Type from its String Representation in C#?

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3