В любом случае
TabPage tp = new TabPage();
tp = instance.pluginTabPage();
не имеет смысла.
Do:
TabPage tp = instance.pluginTabPage();
Также сделайте следующее:
Type type = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.FirstOrDefault(p => type.IsAssignableFrom(p));
if (type != null)
{
// create instance
}
или (мой предпочтительный способ):
from asm in AppDomain.CurrentDomain.GetAssemblies()
from type in asm.GetTypes()
where !type.IsInterface && !type.IsAbstract && typeof(ITarget).IsAssignableFrom(type)
select (ITarget)Activator.CreateInstance(type);