I want to call a function from a .net executable from my own code. I used reflector and saw this:
namespace TheExe.Core
{
internal static class AssemblyInfo
You are passing an array of strings as a single parameter with your current code.
Since string[]
can be coerced to object[]
, you can just pass the parameters
array into Invoke
.
string result = (string)mi.Invoke(null, parameters);
If you need this for testing purposes consider using InternalsVisibleTo attribute. This way you can make your test assembly to be "friend" of main assembly and call internal methods/classes.
If you don't have control (or can't sign) assemblies - reflection is the way to do it if you have to. Calling internal methods of third party assemblies is good way to get headaches when that assembly changes in any shape of form.