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

本文关键字:动态 对象 属性 创建 NET 可以使 是否 | 更新日期: 2023-09-27 18:24:12

我正试图在我的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. 只设置了ddd。return Json(new { Dddd = source.Dddd }

看看我是如何在飞行中创建一个匿名对象的。好吧,我能这么做是因为在这个懊悔的例子中,我知道发生了什么。但当涉及到真正的代码时,我必须"弄清楚"真正设置了什么,然后动态返回。

这个想法是基于Stack Exchange的Api包装器。。其中它们有一些可选值,如果设置了这些值,它们将通过json返回。

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

看看ExpandoObject,这里给出了一个xml示例

例如。

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