Perfil de GabrielBiztalk Blandengue (http...FotosBlogListasMais ![]() | Ajuda |
|
5/8/2006 CTP de SandCastle3/8/2006 Cargado dinámico de assemblies de workflows en WF (WinFx)Es trivial, pero nunca había probado a levantar un workflow desde un Assembly cargado por reflection.
Si se fijan, el inicio de una instancia de workflow comúnmente sigue un patrón como debajo:
private void IniciarWorkflow()
{
WorkflowRuntime wr = new WorkflowRuntime();
System.type tipo = typeof(WorkflowProject1.Workflow1);
wr.StartWorkflow(tipo);
}
Viendo que es un tipo lo que levanta y acostumbrado a jugar con tipos y Reflection se me ocurrió que un host de WF podría cargar dinámicamente distintos Workflows solamente con saber las assemblies y el nombre de los tipos que estaban dentro. Separé el Workflow y probé a tenerlo fuera del proyecto que tenía la app que hacía de host y cambié el inicio por:
private void IniciarWorkflow()
{
WorkflowRuntime wr = new WorkflowRuntime();
System.Runtime.Assembly assm = Assembly.LoadFrom("WorkflowProject1.dll");
System.Type tipo = assm.GetType("WorkflowProject1.Workflow1");
wr.StartWorkflow(tipo); }
y funciona sin problemas.
Diviértanse en el mundo dinámico de WF.
|
|
|