文字列をC#タイプに変換したいと思います。ここでのユースケースは、シリアライズされたデータをタイプとともにキャッシュに格納してからキャストして戻すことです。 DataEntities.Showという名前のカスタムクラスがあります(DataEntitiesは名前空間です)。 "DataEntities.ShowEntity"と入力してデシリアライズしようとすると、すべてがうまくやっています。C#を構築する最良の方法シリアル化/逆シリアル化のための文字列を入力してください
キャッシュにList型のオブジェクトを格納するときに問題が発生します。 結果の型が "System.Collections.Generic.List`1 [DataEntities.ShowEntity]"であるため、アセンブリにはDataEntities.ShowEntityのみが含まれており、結果の型が見つからないため、以下の検索が失敗します。私は結果としてヌルを得る。
"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をまったく使用できますか?どちらの方法でも、bostのシリアライゼーションとデシリアライゼーションに組み込みのC#メソッドを使用できます。 – Tjaart
[ServiceStack.Text](https://github.com/ServiceStack/ServiceStack.Text)を試しましたか? –