1

この質問は、Windows Workflow Foundation (WF) と、デザイナーを使用して XAML で作成するワークフローを、概念的にコードで実行できるものと比較する方法 (私はプログラマーです!) を理解するのに役立ちます。

ここにあります:

using System;
using System.Activities;
using System.Activities.Statements;

namespace WorkflowConsoleApplication1
{
    public class CodeDefinedWorkflow : Activity
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Invoking the workflow now");
            WorkflowInvoker.Invoke(new CodeDefinedWorkflow());
        }

        public CodeDefinedWorkflow()
        {
            Sequence s = new Sequence
            {
                Activities = {
                                new WriteLine {Text = "Hello"},
                                new Sequence 
                                {
                                    Activities =
                                    {
                                        new WriteLine {Text = "Workflow"},
                                        new WriteLine {Text = "World"}
                                    }
                                }
                             }
            };
        }
    }
}

WriteLineアクティビティがコンソールにテキストを書き込むことを期待します (デフォルト?)。

ルートSequenceアクティビティを追加する方法が欠けているに違いありません。また、それをプロパティにして、コンポーネントを初期化する方法を見つけようとしました。

誰でも私を啓発できますか?

4

2 に答える 2

0

わかりました、答えが見つかりました!

コンストラクターの内容を削除します。オーバーライドするプロパティがあります。

    protected override Func<Activity> Implementation
    {
        get
        {
            return () =>
                {
                    Sequence s = new Sequence
                        {
                            Activities = {
                                        new WriteLine {Text = "Hello"},
                                        new Sequence 
                                        {
                                            Activities =
                                            {
                                                new WriteLine {Text = "Workflow"},
                                                new WriteLine {Text = "World"}
                                            }
                                        }
                                     }
                        };
                    return s;
                };

        }
        set
        {
            base.Implementation = value;
        }
    }
于 2012-07-04T16:24:13.593 に答える