如何从文字中实例化System.Types列表?

时间:2018-06-01 16:58:08

标签: c# reflection system.type

我有几种类型:

public ClassA
{
}

public ClassB
{
}

public ClassC
{
}

现在我想将其中一些存储在列表中?

我尝试过的一些失败方法:

List<System.Type> allowedTypes = new List<System.Type>{ ClassA, ClassC };

List<System.Type> allowedTypes = new List<System.Type>{ System.Type.GetType(ClassA), Systme.Type.GetType(ClassC) };

List<System.Type> allowedTypes = new List<System.Type>{ ClassA.GetType(), ClassC.GetType() };

我所知道的工作方法看起来很麻烦:

List<System.Type> allowedTypes = new List<System.Type>{ new ClassA().GetType(), new ClassB().GetType() };

这种方法很麻烦,因为它需要ClassAClassC专门为这种用途做好准备。

List<System.Type> allowedTypes = new List<System.Type>{ System.Type.GetType("ClassA"), System.Type.GetType("ClassC") };

如果没有办法摆脱这些神奇的弦乐,我想我应该拥抱它们......

1 个答案:

答案 0 :(得分:4)

正确的方法是typeof expression

$final[] = json_decode($a,true) ;
$final[] = json_decode($b,true) ;
$final[] = json_decode($c,true) ;