asp.net可插拔系统

时间:2016-05-19 19:19:49

标签: c# asp.net

我正在尝试使用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,如果我只加载它会损害我的应用程序吗?

0 个答案:

没有答案