一尘不染

在不同的程序集中从类名解析类型

c#

我有一种方法需要解析类的类型。此类存在于另一个程序集中,其名称空间类似于:

MyProject.Domain.Model

我正在尝试执行以下操作:

Type.GetType("MyProject.Domain.Model." + myClassName);

如果执行此操作的代码与我要解析其类型的类在同一程序集中,则此方法非常有用,但是,如果我的类在其他程序集中,则此代码将失败。

我确信有更好的方法来完成此任务,但是我在解析程序集和遍历其中的名称空间来解析我要查找的类的类型方面没有很多经验。有什么建议或提示可以更优雅地完成此任务吗?


阅读 366

收藏
2020-05-19

共1个答案

一尘不染

您必须像这样添加程序集名称:

Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");

为避免歧义或如果程序集位于GAC中,则应提供完全合格的程序集名称,例如:

Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
2020-05-19