从PropertyInfo创建通用列表<Type>

用户999999

在我的一门课中,我具有以下属性:

public List<ClassP> MyPlanes { get; set; }

在另一种方法中,我具有propertyInfo上述属性的属性(函数self不知道propertyinfo的来源)。现在,create a list of classP当我只有propertyInfo为时,我正在尝试MyPlanes到目前为止,我的尝试似乎是徒劳的,这就是我得到沙发的程度:

可变prop是MyPlanes的PropertyInfo

public void GenerateList(PropertyInfo prop)
{
            if (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericArguments().Length > 0)
            { 
                List<prop.PropertyType.GetGenericArguments().First()> myValueList = 
                    new List<prop.PropertyType.GetGenericArguments().First()>();
            }
}

创建列表(使用上面的代码)会出现以下错误 Using the generic type 'System.Collections.Generic.List<T>' requires 1 type arguments

任何帮助将不胜感激

注意:我希望列表以上面可见的语法(或类似语法)创建。我想让我的代码尽可能通用

马特·伯兰德

要在具有类型时创建泛型类,则不能使用方括号,<>因为您在编译时不知道类型。您需要执行以下操作:

var baseType = typeof(List<>);
var genericType = baseType.MakeGenericType(prop.PropertyType.GetGenericArguments().First());

现在,您具有正确的类型,可以像这样创建它:

IList myList = (IList)Activator.CreateInstance(genericType);

编辑:尽管正如Selman22上面所述,您已经有了PropertyType,所以您不需要获取泛型类型,除非您尝试使用相同的泛型参数创建另一个泛型类(例如,您有一个List<T>并且需要创建一个Dictionary<Type,T>或。某物)。因此,如果您遇到这种情况,我会留下我的答案。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从PropertyInfo创建通用列表<Type>

来自分类Dev

Scala宏:如何获取通用列表的Type对象

来自分类Dev

从类属性创建通用列表

来自分类Dev

Java使用List <Type> myList = new ArrayList <Type>();创建列表问题

来自分类Dev

如何从Observable <List <Type >>创建Observable <Type>

来自分类Dev

在C#中创建通用对象的通用列表

来自分类Dev

计算列表中给定子类的出现次数的通用方法以及为什么找不到Type参数

来自分类Dev

返回Nullable Type值的通用方法

来自分类Dev

在创建JsonObjectContract时禁止$ type

来自分类Dev

在创建JsonObjectContract时禁止$ type

来自分类Dev

使用 3 参数创建 TYPE

来自分类Dev

用于多态方法(通用和非通用)的Type.GetMethod()

来自分类Dev

通用对象的通用列表

来自分类Dev

c#在运行时动态创建通用列表

来自分类Dev

在XAML 4.5和更高版本中创建通用列表

来自分类Dev

如何创建class <T>的开放通用类型列表?

来自分类Dev

创建一个通用的<string>以使用列表

来自分类Dev

创建具有通用类作为列表的对象

来自分类Dev

c#在运行时动态创建通用列表

来自分类Dev

当参数为通用参数时,Type.GetMethod的Type数组中应包含哪些Types?

来自分类Dev

在无序列表<ul>中使用type =“ A”

来自分类Dev

带外部列表的Add-Type枚举

来自分类Dev

Kotlin 基于 type 属性的返回列表

来自分类Dev

用`type`动态创建Django模型

来自分类Dev

从Lambda中的多个实体创建单个Type

来自分类Dev

从System.Type在AppDomain中创建实例

来自分类Dev

Container.Register(Type,Assembly [])不注册通用实现

来自分类Dev

在Dart中,如何引用包含通用参数的Type

来自分类Dev

如何在Scala中创建通用列表monoid来维护所涉及列表的内部类型?

Related 相关文章

  1. 1

    从PropertyInfo创建通用列表<Type>

  2. 2

    Scala宏:如何获取通用列表的Type对象

  3. 3

    从类属性创建通用列表

  4. 4

    Java使用List <Type> myList = new ArrayList <Type>();创建列表问题

  5. 5

    如何从Observable <List <Type >>创建Observable <Type>

  6. 6

    在C#中创建通用对象的通用列表

  7. 7

    计算列表中给定子类的出现次数的通用方法以及为什么找不到Type参数

  8. 8

    返回Nullable Type值的通用方法

  9. 9

    在创建JsonObjectContract时禁止$ type

  10. 10

    在创建JsonObjectContract时禁止$ type

  11. 11

    使用 3 参数创建 TYPE

  12. 12

    用于多态方法(通用和非通用)的Type.GetMethod()

  13. 13

    通用对象的通用列表

  14. 14

    c#在运行时动态创建通用列表

  15. 15

    在XAML 4.5和更高版本中创建通用列表

  16. 16

    如何创建class <T>的开放通用类型列表?

  17. 17

    创建一个通用的<string>以使用列表

  18. 18

    创建具有通用类作为列表的对象

  19. 19

    c#在运行时动态创建通用列表

  20. 20

    当参数为通用参数时,Type.GetMethod的Type数组中应包含哪些Types?

  21. 21

    在无序列表<ul>中使用type =“ A”

  22. 22

    带外部列表的Add-Type枚举

  23. 23

    Kotlin 基于 type 属性的返回列表

  24. 24

    用`type`动态创建Django模型

  25. 25

    从Lambda中的多个实体创建单个Type

  26. 26

    从System.Type在AppDomain中创建实例

  27. 27

    Container.Register(Type,Assembly [])不注册通用实现

  28. 28

    在Dart中,如何引用包含通用参数的Type

  29. 29

    如何在Scala中创建通用列表monoid来维护所涉及列表的内部类型?

热门标签

归档