是否可以使用.NET动态对象动态创建属性?

时间:2012-02-13 11:20:04

标签: c# .net asp.net-mvc dynamic

我正在尝试在我的MVC应用程序中创建一些Json,我只想包含源对象中的属性,如果它有一些属性值,则设置。

例如

public class Foo
{
    public string Aaaa { get; set; }
    public string Bbbb { get; set; }
    public int? Ccccc { get; set; }
    public Lol Dddd { get; set; }
}

// Example Outputs.

  1. Aaaa和Ccccc只有值: return Json(new { Aaaa = source.Aaaa, Cccc = source.Ccccc.Value };

  2. 仅设置了Dddd。 return Json(new { Dddd = source.Dddd }

  3. 了解我是如何尝试动态创建匿名对象的。嗯,我可以这样做,因为在这个懊悔的例子中,我知道所设置的是什么。但是当谈到实际代码时,我必须“弄清楚”实际设置的内容,然后动态返回。

    这个想法基于Stack Exchange's Api Wrapper ..它们有一些可选的值,如果它们被设置,它们会通过json返回。

1 个答案:

答案 0 :(得分:11)

看看ExpandoObject,给出了一个xml示例here

例如

dynamic contact = new ExpandoObject();
contact.Name = "Patrick Hines";
contact.Phone = "206-555-0144";
... etc ...
相关问题