シーケンス アクティビティに配置された 3 つのカスタム アクティビティを含むワークフローがあるとします。そして、結果を保持するために、シーケンス アクティビティ レベル (ルート) でブール変数 (「FinalResult」という名前) を作成しました。私の意図は、各カスタム アクティビティ結果を、アクティビティの終了後にカスタム アクティビティ実行メソッド内のルート レベル変数 (「FinalResult」) に割り当てたいということです。
これを取得するには、カスタム アクティビティで出力引数を宣言し、設計時に変数名をアクティビティのプロパティ ウィンドウに手動で配置して、ポリシーを設計します。
しかし、私はエンドユーザーがこれをしたくありません。エンド ユーザーだけがアクティビティをドラッグ アンド ドロップし、「FinalResult」変数に条件を書き込んでほしいだけです。内部的には、アクティビティの結果をプログラムで「FinalResult」変数に保持する必要があります。
最後に、「FinalResult」変数でワークフローの状態を維持し、ワークフローのいつでもどこからでもアクセスしたいと考えています。
以下のようにして、「プロパティが存在しません」というエラーが発生しました。
WorkflowDataContext dataContext = context.DataContext;
PropertyDescriptorCollection propertyDescriptorCollection = dataContext.GetProperties();
foreach (PropertyDescriptor propertyDesc in propertyDescriptorCollection)
{
if (propertyDesc.Name == "FinalResult")
{
object data = propertyDesc.GetValue(dataContext);// as WorkUnitSchema;
propertyDesc.SetValue(dataContext, "anil");
break;
}
}
同じ問題の可能な解決策をお知らせください。