0

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);
4

0 に答える 0