我正在尝试使用asp.net创建一个Pluggable系统
我已经阅读this问题,我遇到的一个大问题是我需要将所有类型的内容从插件传递到主机,例如:models,event handlers views(使用RazorGenerator或类似的东西)等。
当使用appDomain代理访问它们时,它要求传递的对象可序列化,而不是所有项目都可以,
所以我的问题是
Assembly.Load
有什么问题,所以如果我做以下
foreach(FileInfo file in files)
{
var assembly = Assembly.Load(file);
var type = assembly.GetTypes()
.FirstOrDefault(s => s.IsAssignableFrom(typeof(MyBaseType));
if(type == null)
{
continue;
}
var plugin = Activator.CreateInstance(type);
plugin.DoInitiaton();
// ... storing plugin for later use
}
并且在示例场景中有人入侵我的服务器并上传了恶意DLL,如果我只加载它会损害我的应用程序吗?