是否可以使用.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.
Aaaa和Ccccc只有以下值:
return Json(new { Aaaa = source.Aaaa, Cccc = source.Ccccc.Value };
只设置了ddd。
return Json(new { Dddd = source.Dddd }
看看我是如何在飞行中创建一个匿名对象的。好吧,我能这么做是因为在这个懊悔的例子中,我知道发生了什么。但当涉及到真正的代码时,我必须"弄清楚"真正设置了什么,然后动态返回。
这个想法是基于Stack Exchange的Api包装器。。其中它们有一些可选值,如果设置了这些值,它们将通过json返回。
看看ExpandoObject,这里给出了一个xml示例
例如。
dynamic contact = new ExpandoObject();
contact.Name = "Patrick Hines";
contact.Phone = "206-555-0144";
... etc ...