Utilización de actividades personalizadas con marcado de flujo de trabajo
Si utiliza actividades personalizadas en su código de marcado de flujo de trabajo, durante la compilación debe hacer referencia a los ensamblados que contienen esas actividades personalizadas en el código de flujo de trabajo del host. Para ello, debe hacerse referencia al ensamblado que contiene la actividad personalizada mediante un proveedor de tipos en el código, como muestra el ejemplo siguiente:
// Add referenced assemblies to the TypeProvider.
TypeProvider typeProvider = new TypeProvider(null);
typeProvider.AddAssembly(typeof(CustomActivity).Assembly);
workflowRuntime.AddService(typeProvider);
' Add referenced assemblies to the TypeProvider.
Dim typeProvider as New TypeProvider(nothing)
typeProvider.AddAssembly(GetType(CustomActivity).Assembly)
workflowRuntime.AddService(typeProvider)
Además, si recurre a la utilidad de línea de comandos wfc.exe para compilar los flujos de trabajo, el ensamblado que contiene ese tipo personalizado debe agregarse a ReferencedAssemblies en el código de la aplicación host, como muestra el ejemplo siguiente:
// Create a string array with all the assemblies you need to compile your workflow.
String [] assemblyNames = { "CustomWorkflowAssembly.dll" }
WorkflowCompilerParameters parameters = new WorkflowCompilerParameters(assemblyNames);
// Add the path to your referenced assembly to the collection.
parameters.ReferencedAssemblies.Add(typeof(CustomActivity).Assembly.Location);
' Create a string array with all the assemblies you need to compile your workflow.
Dim assemblyNames as String () = { "CustomWorkflowAssembly.dll" }
Dim parameters as New WorkflowCompilerParameters(assemblyNames)
' Add the path to your referenced assembly to the collection.
parameters.ReferencedAssemblies.Add(GetType(CustomActivity).Assembly.Location)
También debe agregar el valor clr-namespace al archivo de marcado de flujo de trabajo, como muestra el ejemplo siguiente:
xmlns:ns0="clr-namespace:XamlWithRules;Assembly=XamlWithRules, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
El siguiente ejemplo muestra un archivo de marcado de flujo de trabajo completo que declara un flujo de trabajo secuencial simple con una única instancia de actividad CustomActivity.
<SequentialWorkflowActivity x:Class="XAMLWorkflow.Workflow1" x:Name="Workflow1" xmlns:ns0="clr-namespace:BusinessActivities;Assembly=CustomActivityAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/workflow">
<ns0:CustomActivity x:Name="CustomActivity1"/>
</SequentialWorkflowActivity>
Consulte también
Conceptos
Uso del marcado de flujo de trabajo
Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.