0

アセンブリ ( ) をロードしdll-test.dll、メソッドを実行したいGetLabel:

namespace Dlltest.Test
{
    public class Main
    {
        public string GetLabel()
        {
            string test = "TestString";
            return test;
        }
    }
}

次のコードがありますが、実行できませんGetLabel

Assembly assembly = Assembly.LoadFile(@"C:\dll-test.dll");
Type type = assembly.GetType();
var obj = Activator.CreateInstance(type);

var result = type.InvokeMember("GetLabel",
                              BindingFlags.Default | BindingFlags.InvokeMethod,
                              null,
                              obj,
                              null);

MessageBox.Show(result.ToString);

のメッセージ ボックスが表示されますTestString

編集

私は最終的に次のように動作させました:

Assembly assembly = Assembly.LoadFile(@"C:\dll-test.dll");
var type = assembly.GetTypes();
var obj = Activator.CreateInstance(type[0]);

var result = type[0].InvokeMember("GetLabel",
                          BindingFlags.Default | BindingFlags.InvokeMethod,
                          null,
                          obj,
                          null);

MessageBox.Show(result.ToString());
4

2 に答える 2