Я создаю дополнительную систему для оболочки, которую я разрабатываю с помощью C#. Я следовал 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
Что я не делаю правильно?
Вы заглянули в управляемую расширяемую платформу? Microsoft уже написала для вас довольно приличную систему плагинов ;-) –
Почти все случаи «NullReferenceException» одинаковы. См. «[Что такое исключение NullReferenceException в .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –