在您说什么之前,我已经阅读了有关此问题的先前提问。那里的答案并没有解决我的问题。
我想,如果你知道答案,这很简单。这是我的问题:
我有几个项目的解决方案,我正在创建一个基于插件的应用程序,我使用Reflection来加载所有程序集。这部分很好,我加载了所有的程序集
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] {“无法从程序集'KayakoRestAPI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'KayakoRestAPI.KayakoService'。”:“KayakoRestAPI.KayakoService”}
有人有什么好主意吗?我一直盯着自己。如果我从KayakoData中删除服务部分,整个过程都有效,但我确实需要运行该服务。