1

Is it possible, to use one DLL's internal method ?
I've decompiled the .net dll, using Reflector and dotPeek, and found what I need, name and parameters of the method.
I've already made a simple program to call the public ones, so I'm fine with this.
CFF Explorer (here) allows to change some things to public/private/static/etc...
Did anyone tried this with success? Thanks.

Filipe YaBa Polido
  • 1,656
  • 1
  • 17
  • 39
  • 1
    You can do it using Reflection. See [this question](http://stackoverflow.com/questions/135443/how-do-i-use-reflection-to-invoke-a-private-method-in-c) for example. – RB. Mar 20 '13 at 11:42

1 Answers1

1

Yes, you could use Reflection. Consider the following class:

public class A
{
    internal void Method(string val) { }
}

to consume that method you would need to do something like this:

var a = new A();
var methodInfo = a.GetType().GetMethod("Method", BindingFlags.Instance | BindingFlags.NonPublic);
if (methodInfo == null) { return; }  // the method wasn't found on the type

methodInfo.Invoke(a, new object[] { "parameter value" });

and if the method returned a value:

var result = methodInfo.Invoke(a, new object[] { "parameter value" });
Mike Perrenoud
  • 66,820
  • 29
  • 157
  • 232