dll からメソッドを呼び出すにはどうすればよいですか? 静的コンソール アプリケーションから呼び出すことができるメニューを作成しようとしています。Object reference not set to an instance of an object.
このコードを実行すると、エラーエラーが発生します。
public class Menu
{
public string Title;
public Type Program;
public Dictionary<int, Tuple<string, MethodInfo>> Choices;
public Menu(Type program, string title, string[,] choices)
{
Program = program;
Title = title;
Choices =
new Dictionary<int, Tuple<string, MethodInfo>>();
for (int i = 0; i < choices.GetLength(0); i++)
{
Choices.Add(i,
new Tuple<string, MethodInfo>(choices[i, 0], program.GetMethod(choices[i, 1])));
}
}
public void Create()
{
Console.WriteLine(Title);
for (int i = 0; i < Choices.Count; i++)
Console.WriteLine("{0}: {1}", i, Choices[i].Item1);
int choice = ConsoleInput.GetNumber();
while (choice < Choices.Count - 1)
Choices[choice].Item2.Invoke(null, null);
}
}
インスタンス化
呼び出される 2 つのメソッドは void を返します。
static readonly string[,] MainMenuChoices = new[,] {
{"Invoke Testing", "InvokeTesting()"},
{"Invoke Test","InvokeTest()"}
};
static readonly Menu MainMenu = new Menu(typeof(Program), "Menu Test", MainMenuChoices);