1
我正在为使用C#开发的shell创建附加系统。我跟着this和this。这里是我的函数加载一个附加:System.NullReferenceException尝试从DLL文件加载函数 - C#
public void loadAppFromDLL(string assemblyFile)
{
Assembly a = Assembly.Load(assemblyFile);
Type app = a.GetType("App");
MethodInfo loadMethod = app.GetMethod("load");
object appInstance = Activator.CreateInstance(app);
loadMethod.Invoke(appInstance, null);
}
这里是附加:
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace App
{
public class App
{
public void load()
{
MessageBox.Show("Application loaded successfully!");
}
}
}
当我打造的插件,我把它放在同一个目录中壳可执行文件并调用:
LoadExternalApp lea = new LoadExternalApp();
lea.loadAppFromDLL("SampleApp");
(LoadExternalApp包含DLL加载功能)
当我调试我的壳,我注意到:
- 的应用程序没有启动
- 有一个System.NullReferenceException
什么我不这样做对吗?
你看过托管扩展框架吗?微软已经为你写了一个相当不错的插件系统;-) – 2013-02-19 14:06:14
几乎所有'NullReferenceException'的情况都是一样的。请参阅“[什么是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)”的一些提示。 – 2013-02-19 14:08:15