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

问题描述 投票:0回答:1

我有几种类型:

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") };

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

c# reflection system.type
1个回答
4
投票

正确的方法是typeof expression

List<System.Type> allowedTypes = 
        new List<System.Type>(){ typeof(ClassA), typeof(ClassC) };
© www.soinside.com 2019 - 2024. All rights reserved.