从不同的程序集中的类名parsingtypes

我有一个方法,我需要解决一个类的types。 这个类存在于另一个程序集中,命名空间类似于:

MyProject.Domain.Model 

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

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

如果正在执行此操作的代码与我正在尝试parsing的类的类处于相同的程序集中,则此方法效果很好,但是,如果我的类在不同的程序集中,则此代码将失败。

我相信有一个更好的方法来完成这个任务,但是我没有很多解决程序集和遍历命名空间的经验来解决我所寻找的类的types。 任何build议或技巧更完美地完成这项任务?

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

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

为了避免混淆,或者程序集位于GAC中,您应该提供一个完全合格的程序集名称,如下所示:

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

你可以使用任何一种标准的方式吗?

 typeof( MyClass ); MyClass c = new MyClass(); c.GetType(); 

如果没有,你将不得不添加关于程序集的Type.GetType的信息。

首先加载程序集,然后加载types。 例如:程序集DLL = Assembly.LoadFile(PATH); DLL.GetType(的typeName);

使用AssemblyQualifiedName属性的简短dynamic方法 –

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