-3
例如,我想動態地告訴Jason轉換器應該反序列化哪種類型的類。在Java中,我可以使用java.lang.Class。在C#中有一個等價的概念嗎?C#中是否有類似於java.lang.Class的東西?
例如,我想動態地告訴Jason轉換器應該反序列化哪種類型的類。在Java中,我可以使用java.lang.Class。在C#中有一個等價的概念嗎?C#中是否有類似於java.lang.Class的東西?
大多數串行器具有通用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中,泛型作爲一流的運行時功能存在 - 它們不會被編譯器通過類型擦除刪除。
** typeof ** ...... –
http://msdn.microsoft.com/en-us/library/system.type.aspx –
如果您是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