做插件式开发,主项目A, 和 子项目B
B编译好之后,把dll 放到了 A项目的 编译目录下 xxx\bin\Debug\netcoreapp2.1\Plugins 这个路径之下, 然后通过 Assembly.LoadFile( path) 拿到程序集
想通过反射获取插件内容类的实例化对象,再执行 Type.GetType(classFullName) 或者 Assembly.GetType(classFullName), 为什么得到的 type 都是 null ?
以下代码实测通过
var binPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
var assembly = Assembly.LoadFrom(Path.Combine(binPath, "Plugins/Cnblogs.Web.dll"));
var pb = assembly.GetType("Cnblogs.Web.PagingBuilder");
Console.WriteLine(pb.FullName);
多谢 dudu 大神,问题找到了,GetType() 我之前传的是 "命名空间.类名,程序集名" 这样的字符串,得到就是null, 如果只给类名 就正常了
AssemblyLoadContext 可以吗
,core 中没有appdomain 对你有影响吗