反思 ExpandoObject

2024-04-09

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

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

我认为,这个问题非常相似:如何反映动态对象的成员? https://stackoverflow.com/questions/2634858/how-do-i-reflect-over-the-members-of-dynamic-object

至少答案应该对你也有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反思 ExpandoObject 的相关文章

随机推荐