我是Workflow Foundation 4的新手,我一直在努力工作幾天,看起來應該完全平凡。請注意,我主要是在這裏編寫C#活動的編碼,而不是所有使用XAML的經驗。如何將對象傳遞給WF4中的後代活動?
總結我的問題,我想弄清楚如何以編程方式將會話對象(或任何對象!)傳遞給所有後代的子活動(或至少是已經教會使用的活動會議)。
我已經有了一個「外部」活動,您可以在其中放置任何其他活動(包括序列,流程圖和其他任何組合)。因此,它只有一項直接的兒童活動,但這可能會有幾代後代(其內容可能會有所不同),這一點很重要。我不知道會有多少後代活動,或者他們的類型是什麼。
「外部」活動在它調度其子活動之前建立了某種會話對象(讓我們假設一個名爲「Session」的對象)。以下是主要問題:我有一些特定的自定義內部活動,需要知道如何獲取此會話參考(即其他活動不知道Session或不需要)。這些自定義的內部活動可能是從「外部」活動開始的幾代人,所以我不能只將外部活動注入到單個孩子或類似的東西中。
除了使用一些非常昂貴的雜亂和容易出錯的遞歸反射,我找不到任何方法來實現這一點。我試過使用工作流變量,InArguments和OutArguments,但沒有運氣讓他們繼續下一代。我想變量是要走的路,但我很難找出正確的方法來做到這一點(我爲我的新手道歉)。在這一點上,我甚至不確定是否應該通過傳遞對象或讓後代搜索回來來解決這個問題。
完成此操作的最佳方法是什麼?
謝謝,夥計,執行性工作做好! –
也許ActivityAction + DelegateInArgument也可以完成這項工作 –
我不認爲解決方案#2會起作用。至少該示例沒有演示將屬性傳遞給子活動 - 它顯示父設置控制檯靜態對象上的屬性。 – HiredMind