2010-06-09 2 views
6

Я написал отличную функцию, которая примет system.object, отразится на ее свойствах и сериализует объект в строку JSON. Это выглядит следующим образом:Reflect on ExpandoObject

public class JSONSerializer 
{ 

    public string Serialize(object obj) 

Теперь я хочу, чтобы быть в состоянии сделать это, чтобы сериализовать динамический/ExpandoObject, а потому, что мой сериализатору использует отражение, он не в состоянии сделать это. Каков обходной путь?

public class Test 
{ 
    public dynamic MakeDynamicCat() 
    { 
     dynamic newCat = new ExpandoObject(); 
     newCat.Name = "Polly"; 
     newCat.Pedigree = new ExpandoObject(); 
     newCat.Pedigree.Breed = "Whatever"; 

     return newCat; 
    } 

    public void SerializeCat() 
    { 
     new JSONSerializer().Serialize(MakeDynamicCat()); 
    } 
} 
+0

возможно дубликат [? Как я размышляю над членами динамического объекта] (http://stackoverflow.com/questions/2634858/how-do-i- отражаю-более-члены-OF-динамического-объекта) – nawfal

ответ

0

Я бы предложил использовать JSON.NET для сериализации. Версия 3.5 поддерживает сериализацию динамических объектов (например, expando). Обезличивание от JSON до динамического объекта требует немного усилий, но это тоже не слишком громоздко. Нижеприведенные разместить списки, что из:

Dynamic Object Serialization

 Смежные вопросы

  • Нет связанных вопросов^_^