是否可以获取IEnumerable的复杂字段的数据类型

时间:2016-12-20 04:56:30

标签: c# serialization reflection ienumerable

问题:当根据复制到DataSource的复杂执行过滤操作时,抛出了错误

要求:需要获取复杂字段属性的数据类型以便我可以对该数据源执行过滤操作。

我已经按如下方式定义了我的performFiltering方法,它有两个参数

第一个参数:DataSource As IEnumerable 第二个参数:FilteredColumn as List

DataSource保存以下数据

Order
{
  OrderID : Long
  EmployeeID : String
  Employee : Info
}

Info
{
     Address : String
}

和" FilteredColumn"持有以下数据

enter image description here

在上面的图片中,字段设置为Employee.Address,所以我需要根据地址字段过滤订单数据库。

如何获取Info类中存在的数据类型。

我尝试过以下方式

        string[] splits = filteredColumn.Field.Split('.');
        var prop = dataSource.AsQueryable().ElementType.GetProperties();
        Type type = null;
        object value = null;
        foreach (var pro in prop)
        {
            if (splits.Length == 1)
            {
                if (pro.Name == filteredColumn.Field)
                    type = pro.PropertyType;
            }
            else
            {
                foreach (string split in splits)
                {
                    if(pro.Name == split)
                        type = pro.PropertyType;
                }
            }
        }

但我无法获取地址数据类型。

请你在上面的代码块中找出我的错误。

0 个答案:

没有答案