我知道有很多关于在新的app域中加载插件的主题。我的错,我之前没有读过它们。我有这个学校项目 - 基于插件的应用程序,差不多完成了。除了一个重点 - 插件必须在新域中加载.. 我使用这篇文章http://www.codeproject.com/Articles/6334/Plug-ins-in-C
创建了基于插件的应用我目前正按时完成项目截止日期,并且我在相同的应用程序域中遇到了插件。 如果可以对链接中的应用程序进行一些简单的更改以在单独的应用程序域中加载插件,请指教我吗?我真的不想从头开始编写应用程序。 :(
感谢您的所有建议。
答案 0 :(得分:1)
我曾尝试将我的WinForms应用程序划分为单独的AppDomains,这根本不容易。但是,在你的情况下,它应该不是很困难。
尝试创建新的AppDomain并在其中加载插件类型。然后使用反射或公共基本接口与该对象进行通信(如果您想避免将插件程序集加载到主机AppDomain中,请记住您无法在主机应用程序中引用插件类型)。
您可能还想查看System.AddIn namespace - 它是专门为实现插件开发而实现的。
答案 1 :(得分:1)
试试这个
AppDomain domain = AppDomain.CreateDomain("domain name");
// TODO: configure appdomain as needed
// to load the dll and get a type you can reference in your current appdomain
string pathToDll = @"C:\somedir\Mydll.dll";
Type myType = typeof(SomeType);
SomeType myObj = (SomeType)domain.CreateInstanceFromAndUnwrap(pathToDll, myType.FullName);
// to just load the dll into the new appdomain
byte[] file = File.ReadAllBytes(pathToDll);
domain.Load(file);
答案 2 :(得分:0)
您可以使用System.Addin。 请查看此示例(或此CodePlex页面中的其他示例)