首页 新闻 搜索 专区 学院

net core 2.0 反射的问题

0
悬赏园豆:20 [已解决问题] 解决于 2018-07-20 09:44

做插件式开发,主项目A, 和 子项目B

B编译好之后,把dll 放到了 A项目的 编译目录下 xxx\bin\Debug\netcoreapp2.1\Plugins 这个路径之下, 然后通过 Assembly.LoadFile( path)  拿到程序集

想通过反射获取插件内容类的实例化对象,再执行 Type.GetType(classFullName) 或者 Assembly.GetType(classFullName), 为什么得到的 type 都是 null ? 

死神的背影的主页 死神的背影 | 小虾三级 | 园豆:658
提问于:2018-07-19 17:33
< >
分享
最佳答案
0

以下代码实测通过

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);
收获园豆:20
dudu | 高人七级 |园豆:39035 | 2018-07-19 19:53

多谢 dudu 大神,问题找到了,GetType() 我之前传的是 "命名空间.类名,程序集名" 这样的字符串,得到就是null, 如果只给类名 就正常了

死神的背影 | 园豆:658 (小虾三级) | 2018-07-20 09:44
其他回答(1)
0

AssemblyLoadContext 可以吗

,core 中没有appdomain 对你有影响吗

放逐人 | 园豆:638 (小虾三级) | 2018-07-19 18:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册