1

是否可以使用一个 DLL 的内部方法?
我已经使用 Reflector 和 dotPeek 反编译了 .net dll,并找到了我需要的方法、名称和参数。
我已经制作了一个简单的程序来调用公共程序,所以我很好。
CFF Explorer(此处)允许将某些内容更改为 public/private/static/etc...
有没有人成功地尝试过这个?谢谢。

4

1 回答 1

1

是的,您可以使用Reflection. 考虑以下类:

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

要使用该方法,您需要执行以下操作:

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" });

如果该方法返回一个值:

var result = methodInfo.Invoke(a, new object[] { "parameter value" });
于 2013-03-20T11:46:12.830 回答