當我在Type對象上做ToString()時,我找回了這個字符串。但是,當我在同一個字符串上調用GetType時,我得到一個空值。我該如何解決?爲什麼Type.GetType()不適用於此字符串?
Type type1 = obj.GetType();
string str = type1.ToString(); //Returns A+B+CGeneric`1+D[E+F]
Type type2 = Type.GetType(str); //Returns null
它是否與(+)符號而不是(。)有關?
編輯 - 我試圖避免調用全名,因爲它返回版本號。將來,如果版本號發生更改,我將無法使用類型名稱對對象進行反序列化。
快速查看[documentation](https://msdn.microsoft.com/en-us/library/w3f99sx1(v = vs.110).aspx)可以解決此問題。輸入字符串不是完全限定的名稱,因爲'type.ToString()'不返回完全限定的類型名稱。 – Amy
如果類定義隨版本號一起更改會怎樣?你想將一些數據反序列化到一個已經被修改的類中,同時忽略這些修改? – Amy
@Deadzone對不起有一個錯字 – user3587180