2015-02-23 76 views
1

卡住“无法找到类型”错误我想在序列化XML的同时在C#项目的连接实用程序中使用.CreateInstance().Unwrap()用于展开可序列化的返回类型并获取我正在尝试创建的类型的实例。使用CreateInstance()

String fileToLoad = @"D:\RPMOpen\svnCobra\conversion\aui\Model\bin\Debug\RPM_Model"; 
String file = Path.GetFileName(fileToLoad); 
AbstractResponseMessageData response = 
    (AbstractResponseMessageData)Activator.CreateInstance(file, responseName).Unwrap(); 

我组装RPM_Model@"D:\RPMOpen\svnCobra\conversion\aui\Model\bin\Debug\RPM_Model"加载罚款,但作为类型ARC_LOGONRSresponseName我碰到下面的错误结果:

Error in method ConnectUtil.Execute: Could not load type ARC_LOGONRS from assembly RPM_Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null .

现在,这就是为什么我被困在错误:

1. I did参考错误中指定的程序集。
2.还有不是我的GAC中的任何内容都会覆盖我的/Debug文件夹中的.dll文件。
3.我确保我拥有正确版本的.dll。
4.该.dll没有其他依赖项。
5.我的项目和.dll都有相同的目标平台。
6.知道,我适当地引用组件,就好像我把ARCLOGON_RS在我的代码,并在它悬停我看到

class RPM.Model.Data.ARCLOGON_RS

,我可以f12专注于它,看看它的属性。
7.我已经清理并重建了两种解决方案。
8.类型确实有一个公共的默认构造函数,并且该类是公共的。
9.该参考节点中的.dll
10. I do有正确的Assembly Name作为参数传递。

我的问题是如果任何人有任何其他的想法,为什么我的项目可能会抛出这个错误,以及如何我可以去解决它,因为我已经完全用完诊断。

非常感谢您的帮助。

+0

该类型是否具有公共的默认构造函数? – 2015-02-23 22:30:06

+0

@RufusL对不起,忘记了,编辑过的问题。 – HavelTheGreat 2015-02-23 22:30:54

+0

愚蠢的问题,但该DLL存在于您正在运行的应用程序相同的文件夹? – 2015-02-23 22:31:54

回答

1

当提供typeName到CreateInstance()时,我必须对完整类型进行硬编码。尽管我的错误看起来好像它正在寻找RPM.Model.Data,但它显然不是。编辑responseNameRPM.Model.Data.ARC_LOGONRS而不是简单的ARC_LOGONRS就是解决错误所必需的。

相关问题