アセンブリ ( ) をロードし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());