动态的typeof在C#
问题描述:
我无法写这将是利用可变从一个配置文件一个的typeof语句的代码是这样的动态的typeof在C#
Type t = new typeof ("My.other.class" + configValue[0]);
configValue是动态值我从app.config文件得到。
我得到的错误是“类型预期”,如果我直接输入类,那就好了,所以我假设我的格式不正确。这应该怎么写?
答
要使用名称空间和类名(如问题中所示)来完成此操作,您还需要知道哪个程序集包含该类。
如果当前运行的程序集(或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);
这不起作用,除非类型在当前程序集或mscorlib中。否则,您需要提供完整的程序集限定名称,而不仅仅是名称空间+类型。 – 2009-08-04 16:16:23