У меня есть два исполняемых файла C # DotNet: PARENT.EXE и CHILD.EXE.Построен с Visual Studio 2010.
Я хочу загрузить и вызвать метод в CHILD.EXE из PARENT.EXE.До сих пор я был в состоянии загрузить CHILD.EXE как сборку, используя Assembly.LoadFrom.Однако я не совсем понимаю, как вызывать метод в CHILD.EXE.
Класс CHILD.EXE выглядит следующим образом:
namespace childnamespace;
public class childclass;
public string childmethod()
{
return "hello world";
}
Я хочу вызвать childmethod () из PARENT.EXE и получить обратно строку "hello world"
.
Я вижу много статей о том, как загрузить EXE как сборку, но не о том, как на самом деле вызвать метод в этой сборке.
Дополнительная информация: спасибо ответу @ MJ У меня есть следующий код в PARENT.EXE
using System;
using System.Reflection;
using System.Diagnostics;
public static class ConsoleTest
{
public static void Main()
{
Assembly SampleAssembly;
try
{
SampleAssembly = Assembly.LoadFrom("child.exe");
MethodInfo Method =
SampleAssembly.GetType("childnamespace.childclass").GetMethod("childmethod");
if (Method != null)
{
Method.Invoke(null, null); // exception here
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
Однако в указанной строке я получаю следующее исключение:
Исключениебыла выброшена целью вызова.
Внутреннее исключение:
Значение не может быть нулевым.