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