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

C# 是否可以使用.NET动态对象动态创建属性?,c#,.net,asp.net-mvc,dynamic,C#,.net,Asp.net Mvc,Dynamic,我试图在我的MVC应用程序中创建一个Json,我只想包含源对象的属性,如果它有一些属性值,则设置 例如 //示例输出。 Aaaa和Ccccc仅具有以下值: 返回Json(新的{Aaaa=source.Aaaa,Cccc=source.cccccc.Value}; 仅设置了Dddd。 返回Json(新建{Dddd=source.Dddd} 看看我是如何在运行中创建匿名对象的。好吧,我可以这样做,因为在这个懊悔的例子中,我知道设置了什么。但是当涉及到真正的代码时,我必须“弄清楚”真正设置了什么,然后

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

例如

//示例输出。

  • Aaaa和Ccccc仅具有以下值:
    返回Json(新的{Aaaa=source.Aaaa,Cccc=source.cccccc.Value};

  • 仅设置了Dddd。
    返回Json(新建{Dddd=source.Dddd}

  • 看看我是如何在运行中创建匿名对象的。好吧,我可以这样做,因为在这个懊悔的例子中,我知道设置了什么。但是当涉及到真正的代码时,我必须“弄清楚”真正设置了什么,然后动态地返回它

    这个想法是基于..它们有一些可选值,如果设置了这些值,则通过json返回。

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

    例如


    相关报道:henrik,不久前看过expandoobject()的东西。我忍不住同意bob对它的看法:
    public class Foo
    {
        public string Aaaa { get; set; }
        public string Bbbb { get; set; }
        public int? Ccccc { get; set; }
        public Lol Dddd { get; set; }
    }
    
    dynamic contact = new ExpandoObject();
    contact.Name = "Patrick Hines";
    contact.Phone = "206-555-0144";
    ... etc ...