在Code中表达的非常简单的WF工作流程

时间:2012-07-04 12:40:55

标签: workflow-foundation

这个问题实际上只是为了帮助我理解Windows Workflow Foundation(WF),以及我将如何使用设计器在XAML中创建的工作流与我在代码中可以理解的方式进行比较(我是程序员!)。 / p>

这是:

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活动的某些方法。我也试过把它作为一个属性,试图找到初始化组件的方法。

任何人都可以启发我吗?

2 个答案:

答案 0 :(得分: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;
        }
    }

答案 1 :(得分:0)

或者将构造函数中创建的对象分配给base.Implementation属性。