创建一个ExpandoObjects列表,其中包含从数组中读取的属性

时间:2013-01-07 15:36:48

标签: c# .net dynamic expandoobject

我正在尝试创建一个动态的对象列表,因为在我从文件中读取对象之前,我不知道对象将具有哪些属性。

假设我在数组中有我的对象的属性(例如FirstName,LastName,Email)。

我想创建具有上述属性的名为Recipient的动态对象。 然后我想创建一个列表并将其中一些对象添加到该列表中。

到目前为止,我已完成以下操作,但我不确定这是否是为动态对象分配属性的正确方法(“fields”是数组的名称):

var persons = new List<dynamic>();
dynamic Recipient = new ExpandoObject() as IDictionary<string, Object>;
foreach (string property in fields)
{
   Recipient.property = string.Empty;
}

如何使用上述属性创建收件人对象,然后将这些收件人添加到人员列表中?

1 个答案:

答案 0 :(得分:13)

ExpandoObject实现IDictionary<string, object>接口,其中键/值将映射到成员名称/值。如果fields数组中有 names 属性,则只需将它们用作字典键:

IDictionary<string, object> recipient = new ExpandoObject();
foreach (string property in fields)
{
   recipient[property] = string.Empty;
}