动态的typeof在C#

动态的typeof在C#

问题描述:

我无法写这将是利用可变从一个配置文件一个的typeof语句的代码是这样的动态的typeof在C#

Type t = new typeof ("My.other.class" + configValue[0]); 

configValue是动态值我从app.config文件得到。

我得到的错误是“类型预期”,如果我直接输入类,那就好了,所以我假设我的格式不正确。这应该怎么写?

关键字typeof用于编译时使用。改为使用Type.GetType(string) API。

+8

这不起作用,除非类型在当前程序集或mscorlib中。否则,您需要提供完整的程序集限定名称,而不仅仅是名称空间+类型。 – 2009-08-04 16:16:23

要使用名称空间和类名(如问题中所示)来完成此操作,您还需要知道哪个程序集包含该类。

如果当前运行的程序集(或mscorlib)包含类型,则可以使用Type.GetType(string)来获取类型。

如果类型包含在不同的程序集(即:库)中,则需要使用Assembly.GetType来代替。这需要有一个Assembly实例,然而,它可以通过Assembly.Load检索,或者使用程序集内的其他类型。

+2

您仍然可以使用Type.GetType。您只需要组件限定的类型名称。我链接的API文档解释了这一点。 – 2009-08-04 16:40:40

这是你在找什么?

Type t = Type.GetType("spork"); 
object myspork = Activator.CreateInstance(t);