corrade-vassal – Rev 1
?pathlinks?
using System;
using System.Windows.Forms;
using GridProxy;
using System.Reflection;
using System.IO;
namespace WinGridProxy
{
public partial class FormPluginManager : Form
{
private ProxyFrame _Frame;
public FormPluginManager(ProxyFrame frame)
{
InitializeComponent();
_Frame = frame;
}
private void buttonLoadPlugin_Click(object sender, EventArgs e)
{
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
LoadPlugin(openFileDialog1.FileName);
}
}
public void LoadPlugin(string name)
{
Assembly assembly = Assembly.LoadFile(Path.GetFullPath(name));
foreach (Type t in assembly.GetTypes())
{
try
{
if (t.IsSubclassOf(typeof(ProxyPlugin)))
{
ConstructorInfo info = t.GetConstructor(new Type[] { typeof(ProxyFrame) });
ProxyPlugin plugin = (ProxyPlugin)info.Invoke(new object[] { _Frame });
plugin.Init();
listView1.Items.Add(new ListViewItem(new []{assembly.ManifestModule.Name, Path.GetFullPath(name)}));
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
private void buttonClose_Click(object sender, EventArgs e)
{
this.Close();
}
}
}