将未知类型作为参数传递给方法,然后稍后转换为该类型

本文关键字:类型 然后 转换 未知 参数传递 方法 | 更新日期: 2023-09-27 18:11:15

我需要创建一个接受未知类型的方法,然后使用该类型访问对象。

再详细一点。我有一个DevEx网格,我使用GetRow来获取记录。GetRow必须是Linq类对象的类型才能访问记录的属性。我试图创建一个泛型方法,允许我传入Linq对象的类型,然后动态地将结果从GetRow转换到该对象。然后,我将获取列字段名以访问如下属性(objectType是未知类型):

void DoGrid (GridView gv, objectType)
{    
    PropertyInfo[] properties = objectType.GetProperties();
    foreach (GridColumn col in gv.Columns)
        {
             if (col.Visible)
             {
                 PropertyInfo property = properties.Where(prop => prop.Name == col.FieldName).FirstOrDefault();
                 ...
             }
        }
}

将未知类型作为参数传递给方法,然后稍后转换为该类型

您是否正在寻找一种使用泛型完成此操作的方法?比如:

void DoGrid<T>(GridView gv)
{
    PropertyInfo[] properties = typeof(T).GetProperties();
    foreach (GridColumn col in gv.Columns)
    {
        ...
    }
}

然后你可以这样使用:

DoGrid<MyClassFullOfProperties>(myGridView);
相关文章: