using System.Reflection;
using IterfaceLibrary;
IModuleInfo clientForm = null;
Form clientForm2 = null;
string formID = String.Empty;
Assembly newDll = Assembly.LoadFrom("Test.dll");
foreach (Type itemType in newDll.GetTypes())
{
if (itemType.IsClass)
{
if (itemType.FullName.Contains("Form"))
{
// Assembly有implement Interface
clientForm = Activator.CreateInstance(itemType) as IModuleInfo;
MessageBox.Show(clientForm.ModuleName);
clientForm.ShowForm(this, "From Main");
// Assembly沒有implement Interface
clientForm2 = Activator.CreateInstance(itemType) as Form;
// 呼叫clientForm2裡面的ShowModuleID()方法,該方法回傳formID字串
formID = itemType.InvokeMember("ShowModuleID", BindingFlags.InvokeMethod, null,
clientForm2, null) as string;
MessageBox.Show(formID);
}
}
}
2013/03/04
[C#] Dynamically load assembly (dll)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment