如何从对象类型定义泛型?

西亚玛克·费多斯(Siamak Ferdos)

我有一个扩展方法:

public static List<object> ToModelViewObjectList<ModelViewType>(this IEnumerable<object> source)
{

    List<ModelViewType> destinationList = new List<ModelViewType>();

    PropertyInfo[] ModelViewProperties = typeof(ModelViewType).GetProperties();
    foreach (var sourceElement in source)
    {
        object destElement = Activator.CreateInstance<ModelViewType>();
        foreach (PropertyInfo sourceProperty in sourceElement.GetType().GetProperties())
        {

            if (ModelViewProperties.Select(m => m.Name).Contains(sourceProperty.Name))
            {
                destElement.GetType().GetProperty(sourceProperty.Name).SetValue(destElement, sourceProperty.GetValue(sourceElement));
            }
        }
        destinationList.Add((ModelViewType)destElement);
    }

    return destinationList.Cast<object>().ToList();
}

我有一个带有对象列表的方法,我想在此方法中调用扩展方法:

public void GridModel(IEnumerable<object> GridDataSource)        
{ 
   List<object> list = GridDataSource.ToModelViewObjectList<GridDataSource[0].GetType()>();
}

我应该写些什么而不是GridDataSource [0] .GetType()?

编辑:

我有一个带有对象参数的方法。我想创建一个对象类型的通用列表。

public void CreateListByNonGenericType(object myObject)
{
    Type objType = myObject.GetType();

    var lst = System.Collections.Generic.List < objType.MakeGenericType() > ();
}

我应该写些什么objType.MakeGenericType()呢?

他感觉
public void CreateListByNonGenericType(object myObject)
{
    Type objType = myObject.GetType();
    Type listType = typeof(List<>).MakeGenericType(objType);

    //We can not use here generic version of the interface, as we
    // do not know the type at compile time, so we use the non generic 
    // interface IList which will enable us to Add and Remove elements from
    // the collection
    IList lst = (IList)Activator.CreateInstance(listType);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何定义不是类的泛型类型?

来自分类Dev

如何确定非对象泛型的类型?

来自分类Dev

如何在JAVA泛型中定义使用2个泛型参数扩展Map对象的类型?

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

实例化泛型类型以支持自定义对象

来自分类Dev

实例化泛型类型以支持自定义对象

来自分类Dev

转换泛型类型对象

来自分类Dev

如何从泛型类型定义中获取 typeparam 名称?

来自分类Dev

如何传递对象类型以调用泛型方法

来自分类Dev

如何在泛型类中返回对象的泛型类型?

来自分类Dev

使用泛型向地图添加泛型类型的对象

来自分类Dev

如何在没有泛型类型参数的情况下定义泛型函数?

来自分类Dev

如何使泛型类型始终成为泛型类型列表?

来自分类Dev

用泛型类型定义的函数

来自分类Dev

使用泛型定义混合类型

来自分类Dev

使用类对象作为泛型类型

来自分类Dev

泛型类型,集合和对象引用

来自分类Dev

隐式转换泛型类型对象

来自分类Dev

泛型-返回不同类型的对象

来自分类Dev

方法对象与泛型的返回类型?

来自分类Dev

使用泛型从对象获取原始类型

来自分类Dev

Swift语言中带有自定义对象的泛型类型

来自分类Dev

Swift语言中带有自定义对象的泛型类型

来自分类Dev

将自定义类对象传递给Java中的泛型类型

来自分类Dev

如何在返回类型使用通配符从定义泛型类型有什么不同?

来自分类Dev

java中的泛型类型:如何定义一个返回多个不同类型的函数

来自分类Dev

C#如何使用类型为“类型”的对象初始化泛型类

来自分类Dev

如何使用泛型类型获取具有相同类型的对象

Related 相关文章

  1. 1

    如何定义不是类的泛型类型?

  2. 2

    如何确定非对象泛型的类型?

  3. 3

    如何在JAVA泛型中定义使用2个泛型参数扩展Map对象的类型?

  4. 4

    如何从泛型定义和泛型参数获取泛型类型?

  5. 5

    如何从泛型定义和泛型参数获取泛型类型?

  6. 6

    实例化泛型类型以支持自定义对象

  7. 7

    实例化泛型类型以支持自定义对象

  8. 8

    转换泛型类型对象

  9. 9

    如何从泛型类型定义中获取 typeparam 名称?

  10. 10

    如何传递对象类型以调用泛型方法

  11. 11

    如何在泛型类中返回对象的泛型类型?

  12. 12

    使用泛型向地图添加泛型类型的对象

  13. 13

    如何在没有泛型类型参数的情况下定义泛型函数?

  14. 14

    如何使泛型类型始终成为泛型类型列表?

  15. 15

    用泛型类型定义的函数

  16. 16

    使用泛型定义混合类型

  17. 17

    使用类对象作为泛型类型

  18. 18

    泛型类型,集合和对象引用

  19. 19

    隐式转换泛型类型对象

  20. 20

    泛型-返回不同类型的对象

  21. 21

    方法对象与泛型的返回类型?

  22. 22

    使用泛型从对象获取原始类型

  23. 23

    Swift语言中带有自定义对象的泛型类型

  24. 24

    Swift语言中带有自定义对象的泛型类型

  25. 25

    将自定义类对象传递给Java中的泛型类型

  26. 26

    如何在返回类型使用通配符从定义泛型类型有什么不同?

  27. 27

    java中的泛型类型:如何定义一个返回多个不同类型的函数

  28. 28

    C#如何使用类型为“类型”的对象初始化泛型类

  29. 29

    如何使用泛型类型获取具有相同类型的对象

热门标签

归档