获取动态类型c#的属性

时间:2018-11-28 16:47:49

标签: c# dynamic

考虑以下代码:

foreach (Type formType in allFormsToLoopThrough)
            {
                var nonPriorityForm = _context.Query(formType);
                foreach (var nonpriority in nonPriorityForm)
                {

                    var name = nonpriority.GetType().Name;

                    MyWorkAssignmentDTO form = new MyWorkAssignmentDTO
                    {
                        FormName = formType.Name
                        Id = nonpriority.Id

                    };

                }
            }

此代码段循环了一系列类型。 每种类型都从列表中获取,并传递给Query函数,该函数返回IQueryable-本质上是数据库中给定表中与该类型匹配的记录列表。

然后对于每个返回的记录集,我想遍历这些记录集,并从每个记录集中创建MyWorkAssignmentDTO的新实例。我只对表单名称感兴趣(可以从formType获得),但我不能获得nonpriority.Id

我确定每个非优先级在循环中解析后都会有一个ID。 我不能做的就是在运行时实现它。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我能够使用 dynamic 关键字而不是var。虽然我失去了编译时验证,但是当我确定会有一个ID时,这使我越过线。

dynamic nonPriorityForm = _context.Query(formType);