2014-06-30 86 views
-3

例如,我想動態地告訴Jason轉換器應該反序列化哪種類型的類。在Java中,我可以使用java.lang.Class。在C#中有一個等價的概念嗎?C#中是否有類似於java.lang.Class的東西?

+0

** typeof ** ...... –

+0

http://msdn.microsoft.com/en-us/library/system.type.aspx –

+1

如果您是Google'c#java.lang.class',您會發現[this](http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/C%20Sharp%20From%20a%20Java%20Developer's%20Perspective.htm)in第一頁 – I4V

回答

0

大多數串行器具有通用API或基於API的API;兩者都適用於此。例如,json.net同時提供:

var foo = (Foo) JsonConvert.DeserializeObject(json, typeof(Foo)); 

var foo = JsonConvert.DeserializeObject<Foo>(json); 

它是第一個是最相似到你的描述;這裏的關鍵是Type

Type type = typeof(Foo); 

有得到一個Type實例,當然,包括名稱的其他方式,和一般建築:

Type itemType = someAssembly.GetType("My.Magic.Type"); 
Type listType = typeof(List<>).MakeGenericType(itemType); 

導致代表List<My.Magic.Type>Type 。請注意,在.NET中,泛型作爲一流的運行時功能存在 - 它們不會被編譯器通過類型擦除刪除。

相關問題