C# C中的动态类型#

C# C中的动态类型#,c#,typeof,C#,Typeof,我在写一个typeof语句时遇到了问题,该语句将使用配置文件中的变量。代码如下 Type t = new typeof ("My.other.class" + configValue[0]); configValue是我从app.config文件中获取的动态值 我得到的错误是“type expected”。如果我直接键入类,则没有问题,因此我假设我的格式不正确。该如何编写?关键字的类型用于编译时。请改用API。要仅使用名称空间和类名(如问题中所述)执行此操作,还需要知道哪个程序集包含该类 如果

我在写一个typeof语句时遇到了问题,该语句将使用配置文件中的变量。代码如下

Type t = new typeof ("My.other.class" + configValue[0]);
configValue是我从app.config文件中获取的动态值


我得到的错误是“type expected”。如果我直接键入类,则没有问题,因此我假设我的格式不正确。该如何编写?

关键字的
类型用于编译时。请改用API。

要仅使用名称空间和类名(如问题中所述)执行此操作,还需要知道哪个程序集包含该类

如果当前运行的程序集(或mscorlib)包含该类型,则可以使用获取该类型


如果类型包含在不同的程序集中(即:库),则需要使用。但是,这需要有一个程序集实例,可以通过Assembly.Load或使用程序集中的其他类型检索该实例。

这就是您要查找的吗

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

除非类型在当前程序集或mscorlib中,否则这将不起作用。否则,您需要提供完整的程序集限定名,而不仅仅是namespace+type。您仍然可以使用type.GetType。您只需要程序集限定的类型名。我链接的API文档解释了这一点。是的,我的评论也指出了这一点。如果不使用程序集,就无法使用问题中的语法(名称空间+类型)加载它。