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