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

C# 是否可以获取IEnumerable的复杂字段的数据类型,c#,serialization,reflection,ienumerable,C#,Serialization,Reflection,Ienumerable,问题:当根据数据源的复杂字段执行筛选操作时,抛出了错误 要求:需要获取复杂字段属性的数据类型,以便我可以对该数据源执行过滤操作 我将performFiltering方法定义如下,它有两个参数 第一个参数:数据源为IEnumerable 第二个参数:FilteredColumn作为列表 DataSource保存以下数据 Order { OrderID : Long EmployeeID : String Employee : Info } Info { Address :

问题:当根据数据源的复杂字段执行筛选操作时,抛出了错误

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

我将performFiltering方法定义如下,它有两个参数

第一个参数:数据源为IEnumerable 第二个参数:FilteredColumn作为列表

DataSource保存以下数据

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

Info
{
     Address : String
}
“FilteredColumn”包含以下数据

在上面的图片中,字段设置为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;
                }
            }
        }
但是我无法获取地址数据类型

你能找出我在上面代码块中的错误吗