次の方法で共有


ワークフロー マークアップ付きカスタム アクティビティの使用

ワークフロー マークアップ コード内でカスタム アクティビティを使用する場合、カスタム アクティビティを格納するアセンブリがコンパイル時にホスト ワークフロー コードで参照されなければなりません。これを行うには、次の例のようにコード内で型プロバイダを介して、カスタム アクティビティを格納するアセンブリを参照する必要があります。

// 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)

さらに、コマンド ライン ユーティリティ wfc.exe を使ってワークフローをコンパイルする場合には、次の例のように、そのカスタム型を格納するアセンブリをホスト アプリケーション コードの ReferencedAssemblies に追加する必要があります。

// 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)

さらに、次の例のように、ワークフロー マークアップ ファイルに clr-namespace 値を追加する必要があります。

xmlns:ns0="clr-namespace:XamlWithRules;Assembly=XamlWithRules, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

次の例は、CustomActivity アクティビティの 1 つのインスタンスを使って単純なシーケンシャル ワークフローを宣言する完成したワークフロー マークアップ ファイルを示しています。

<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>

関連項目

概念

ワークフロー マークアップの使用

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.