1

我正在尝试.CreateInstance()在 C# 项目中的连接实用程序中使用,同时序列化 XML。.Unwrap()用于解开可序列化的返回类型并获取我正在尝试创建的类型的实例。

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我收到以下错误:

ConnectUtil.Execute 方法出错:无法ARC_LOGONRS从程序集中加载类型RPM_Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

现在,这就是我陷入错误的原因:

1.确实引用了错误中指定的程序集。
2.我的 GAC中没有任何内容覆盖我/Debug文件夹中的 .dll。
3.我已确保我拥有正确版本的 .dll。
4. .dll 没有其他依赖项。
5.我的项目和.dll都有相同的目标平台。
6.知道我正确地引用了程序集,就好像我将ARCLOGON_RS代码放入我的代码并将鼠标悬停在它上面我看到了

类 RPM.Model.Data.ARCLOGON_RS

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

我的问题是,是否有人对为什么我的项目可能会抛出此错误以及如何修复它有任何其他想法,因为我已经完全用完了诊断。

非常感谢您的帮助。

4

1 回答 1

1

向我提供 typeName 时,CreateInstance()我必须对完整类型进行硬编码。尽管我的错误看起来好像是RPM.Model.Data我希望的那样,但显然不是。编辑responseNameRPM.Model.Data.ARC_LOGONRS不是简单地编辑ARC_LOGONRS是克服错误所必需的。

于 2015-02-24T13:44:08.257 回答