我想裝載組件(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());
將創建System.Reflection.Assembly的實例,並調用它的GetGabel方法... –
GetGabel!= GetLabel – msmucker0527