在您说话之前,我已经阅读了此问题的先前提问。那里的答案没有解决我的问题。
如果您知道答案,这似乎很简单。以下是我的问题:
我有一个包含多个项目的解决方案,我正在创建一个基于插件的应用程序,在其中使用反射来加载所有程序集。这部分很好,我像这样加载了所有程序集。
var filePaths = Directory.GetFiles(@"C:\CustomerServiceModule\", "*.dll", SearchOption.AllDirectories).Where(n => n.Contains("bin"));
foreach (var f in filePaths)
{
Assembly.LoadFile(f);
}
现在我想创建一个类型的实例,以便与它一起工作:
var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.ManifestModule.Name == "Kayako.dll").SingleOrDefault();
var name = assembly.GetTypes();
var type = assembly.GetType("Kayako.KayakoData");
var lol = Activator.CreateInstance(type);
这很糟糕,因为在KayakoData内部我有以下内容:
KayakoService _service = new KayakoService("xxx", "yyy", "zzz");
这个服务是一个可运行的程序集,我以前用过。版本号没有问题,在GAC中也没有覆盖它的内容,使用程序集绑定日志查看器也没有发现任何错误。但仍然会出现如下错误:
[System.LoadTypeException]{"Could not load type 'KayakoRestAPI.KayakoService' from assembly 'KayakoRestAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.":"KayakoRestAPI.KayakoService"}。
有人有什么好的想法吗?我已经一直在盯着这个问题看了。如果我从KayakoData中删除服务部分,整个东西就能正常工作,但我真的需要运行这项服务。