在您说什么之前,我已经阅读了有关此问题的先前提出的问题.那里的答案并没有解决我的问题.
我想,如果你知道答案的话,这很简单.这是我的问题:
我有几个项目的解决方案,我正在创建一个基于插件的应用程序,我使用Reflection来加载所有程序集.这部分没问题,我加载了所有的程序集
var filePaths = Directory.GetFiles(@"C:\CustomerServiceModule\", "*.dll", SearchOption.AllDirectories).Where(n => n.Contains("bin"));
foreach (var f in filePaths)
{
Assembly.LoadFile(f);
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个类型的实例,所以我可以使用它:
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);
Run Code Online (Sandbox Code Playgroud)
这很糟糕,因为在KayakoData中我有这个:
KayakoService _service = new KayakoService("xxx", "yyy", "zzz");
Run Code Online (Sandbox Code Playgroud)
这个服务是一个有效的程序集,我以前用过它.版本号很好,GAC中没有任何内容覆盖它,我看不到使用程序集绑定日志查看器的任何错误.我仍然收到此错误:
[System.LoadTypeException] {"无法从程序集'KayakoRestAPI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'KayakoRestAPI.KayakoService'.":"KayakoRestAPI.KayakoService"}
有人有什么好主意吗?我一直盯着自己.如果我从KayakoData中删除服务部分,整个过程都有效,但我确实需要运行该服务.
| 归档时间: |
|
| 查看次数: |
17418 次 |
| 最近记录: |