我正在为我正在使用 C# 开发的 shell 创建一个附加系统。我已经关注了这个和这个。这是我加载附加组件的功能:
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!");
}
}
}
当我构建附加组件时,我将它放在与 shell 可执行文件相同的目录中并调用:
LoadExternalApp lea = new LoadExternalApp();
lea.loadAppFromDLL("SampleApp");
(LoadExternalApp 包含 DLL 加载函数)
当我调试我的 shell 时,我注意到:
- 应用程序未启动
- 有一个 System.NullReferenceException
我做错了什么?