Reflection 反思一个可扩展的对象

Reflection 反思一个可扩展的对象,reflection,dynamic,c#-4.0,expando,expandoobject,Reflection,Dynamic,C# 4.0,Expando,Expandoobject,我已经编写了一个漂亮的函数,它将接受一个system.object,反映其属性并将对象序列化为JSON字符串。看起来是这样的: public class JSONSerializer { public string Serialize(object obj) 现在,我希望能够这样做来序列化dynamic/ExpandooObject,但是因为我的序列化程序使用反射,所以它无法这样做。解决办法是什么 public class Test { public dynamic Make

我已经编写了一个漂亮的函数,它将接受一个
system.object
,反映其属性并将对象序列化为JSON字符串。看起来是这样的:

public class JSONSerializer
{

    public string Serialize(object obj)
现在,我希望能够这样做来序列化dynamic/ExpandooObject,但是因为我的序列化程序使用反射,所以它无法这样做。解决办法是什么

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());
    }
}

我认为,这个问题非常相似:

至少这些答案对你也有帮助。

可能重复的