1

1 つの DLL の内部メソッドを使用することは可能ですか?
Reflector と dotPeek を使用して .net dll を逆コンパイルし、必要なもの、メソッドの名前とパラメーターを見つけました。
公開プログラムを呼び出す簡単なプログラムを既に作成しているので、これで問題ありません。
CFF Explorer ( here ) を使用すると、いくつかのものを 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 に答える