1
我想將字符串轉換爲C#類型。這裏的用例是我將序列化數據與類型一起存儲在緩存中,然後將其轉回。 我有一個名爲DataEntities.Show(其中DataEntities是一個命名空間)的自定義類。 如果我存儲那個類的類型爲「DataEntities.ShowEntity」,然後嘗試反序列化它,那麼所有的都很好,並且很棒。爲串行化/反序列化構造C#類型的最佳方式
當我在緩存中存儲List類型的對象時,會出現故障。 它的結果類型是「System.Collections.Generic.List`1 [DataEntities.ShowEntity]」,所以下面的查找失敗,因爲程序集只包含DataEntities.ShowEntity,並且找不到結果類型。結果我得到一個null。
我能想到一個醜陋的解決方案,我在解析字符串類型前綴爲「List」或「Enumeration」,但必須有一個更優雅的方式。有什麼建議?
private static Type GetGlobalType(string s)
{
Type t = null;
Assembly[] av = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly a in av)
{
Type[] types = a.GetTypes();
t = Type.GetType(s + "," + a.GetName());
if (t == null)
{
t = Type.GetType(s);
}
if (t != null)
break;
}
return t;
}
是否可以使用JSON或XML?這兩種方法都允許您使用內置的C#方法進行bost序列化和反序列化。 – Tjaart 2012-01-31 00:11:06
你試過[ServiceStack.Text](https://github.com/ServiceStack/ServiceStack.Text)嗎? – 2012-01-31 06:46:38