Ejemplo n.º 1
0
        public MainForm()
        {
            InitializeComponent();
            foreach (KeyValuePair <string, Type> pair in typeDictionary)
            {
                classBox.Items.Add(pair.Key);
            }
            foreach (KeyValuePair <string, AbstractSerializer> pair in serializers)
            {
                serList.Items.Add(pair.Key);
            }
            string[] files = Directory.GetFiles(".", "*.dll");
            foreach (string path in files)
            {
                Type[] types = null;

                var assembly = Assembly.LoadFrom(path);
                if (assembly != null)
                {
                    types = assembly.GetTypes();
                    foreach (Type type in types)
                    {
                        if (type.IsSubclassOf(typeof(AbstractPlugin)))
                        {
                            AbstractPlugin plugin = Activator.CreateInstance(type) as AbstractPlugin;
                            string         name   = plugin.GetName();
                            plugins.Add(name, plugin);
                            pluginsList.Items.Add(name);
                        }
                    }
                }
            }
        }