Mi aplicación carga todos los ensamblados de biblioteca ubicados en su ruta de ejecución y ejecuta métodos preconfigurados contra clases contenidas.Cargar un conjunto en tiempo de ejecución que haga referencia al conjunto de llamadas
Ahora necesito hacer lo mismo con un conjunto que hace referencia a mi conjunto de aplicaciones. ¿Es esto posible y hay implicaciones negativas de las que deba tener conocimiento?
Asamblea Maestro:
public abstract class TaskBase
{
public abstract void DoWork();
}
LoadAssemblyFromFile("Assembly0001.dll");
Assembly0001.Task1.DoWork();
Asambleas Niños:
public sealed class Task1: MasterAssembly.TaskBase
{
public override void DoWork { /* whatever */ }
}
Hago esto todo el tiempo sin ningún problema. El único problema con el que me he encontrado (algunas veces, en realidad) es la gestión de versiones del ensamblado _master_. Si realiza cambios en _master_ sin recompilar a los niños, puede encontrarse con algunos problemas extraños. –
@ M.Babcock: Gracias. Por curiosidad, ¿qué tipo de problemas? No vuelvo a autoincrementar las versiones de ensamblado al volver a compilar. Estoy suponiendo que DEBERÍA eludir cualquier problema que pueda haber encontrado. ¿Tus pensamientos? –
El problema más común que he encontrado es que una definición de método cambia rompiendo la compatibilidad con versiones anteriores, aunque en otros casos he experimentado la temida "_Type_ está definida en ambas excepciones _Master_ y _Master_" (de la memoria no es texto literal, pero está cerrado lo suficiente como para que lo reconozcas). –