に私はこのような静的なリストを持っている:METHODINFOは、C#
class Program
{
public static List<Action> List { get; set; } = new List<Action>();
static void Main(string[] args)
{
Test test = new Test();
test.Work();
var type = test.GetType();
var method = type.GetMethod("Action1",System.Reflection.BindingFlags.Instance|System.Reflection.BindingFlags.NonPublic);
//Console.WriteLine(List.Any(p => p == new Action(method.)));
}
}
public class Test
{
public void Work()
{
Program.List.Add(new Action(Action1));
}
private void Action1()
{
}
}
にはどうすればProgram.Listが反射によってアクション1を含んで判断することができますか?アクション1メソッドが公開されている場合は
することは、私は次のように行うことができます。
Console.WriteLine(List.Any(p => p == new Action(test.Action1)));
そして、それは「真」に印刷されます。
。コードを完了しておらず、実際には何もリストに追加していません。一度行うと、メソッドにmethod.Invoke()を呼び出すデリゲートが含まれていることがわかります。このInvoke()がAction1を呼び出すのは、あなたが発見できるものではないということです。 –