Plugin Architecture using Reflection?
public interface IPlugin
{
void Execute();
}
Load dynamically
var assembly = Assembly.LoadFrom("Plugin.dll");
var type = assembly.GetTypes().First(t => typeof(IPlugin).IsAssignableFrom(t));
var plugin = (IPlugin)Activator.CreateInstance(type);
plugin.Execute();