2013-06-04 97 views
0

如何將我的Class1或對象類轉換爲String,然後再將String轉換回可用於實例化的類型?C# - 字符串和返回類(無XML)

類似的東西:

// class to string: 
Type type1 = myObject.GetType(); 
string text = type1.ToString(); 

// and then back 
Type type2 = Type.Parse(text); 
// type2 should reflect the same type as type1 

要做到這一點與枚舉是很容易和漂亮。所以我想用班級來做到這一點。我也想避免使用序列化和XML。我不想序列化對象,但要記住我需要實例化對象的類。

+2

爲什麼不使用XML? – Giedrius

+0

爲什麼你想這樣做呢? – wterbeek

+0

因此,您的目標是將CLASS名稱保存爲字符串,而不是序列化或持久化實例類中的數據? :S –

回答

2

如果它僅僅是Type你想,那就:

Type type = ... 
string s = type.AssemblyQualifiedName; // and store s 
Type andBackAgain = Type.GetType(s); 
+0

謝謝。這或多或少是我所需要的。 – Bitterblue

4

如果不需要序列化,則可以使用Activator.CreateInstance方法。有一些重載 - 有些直接使用字符串(表示類型),還有一些使用Type對象。

當然,它可能可能方便(或更可擴展)使用也存儲類型信息的序列化程序。

+0

這是最好的方式去。 –

+0

另一種可能是記住Type對象。爲什麼往返一個字符串? – Aphelion

+0

@Aphelion不知道:D – user2246674