NativeActivity 基类

NativeActivity 是具有受保护构造函数的抽象类。 同样 CodeActivityNativeActivity 用于通过实现方法 Execute 编写命令性行为。 与CodeActivity不同,NativeActivity可以通过传递给NativeActivityContext方法的Execute对象访问工作流运行时的所有公开功能。

使用 NativeActivityContext

通过使用类型为 Executecontext 参数的成员,可从 NativeActivityContext 方法中访问工作流运行时的功能。 通过 NativeActivityContext 提供的功能包括以下内容:

创建从 NativeActivity 继承的自定义活动

  1. OpenVisual Studio 2010。

  2. 选择 “文件”、“ 新建”和“ 项目”。 在“项目类型”窗口中选择 Visual C# 下的“工作流 4.0”,然后选择 v2010 节点。 在“模板”窗口中选择“活动库”。 将新项目命名为 HelloActivity。

  3. 右键单击 HelloActivity 项目中的 Activity1.xaml,然后选择“ 删除”。

  4. 右键单击 HelloActivity 项目,然后选择“ 添加”,然后选择 “类”。 将新类命名为HelloActivity.cs。

  5. 在HelloActivity.cs文件中,添加以下 using 指令。

    using System.Activities;
    using System.Activities.Statements;
    
  6. 通过将基类添加到类声明,使新类继承 NativeActivity

    class HelloActivity : NativeActivity
    
  7. 通过添加方法 Execute 向类添加功能。

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. 重写 CacheMetadata 方法并且调用相应的 Add 方法,以便让工作流运行时了解自定义活动的变量、自变量、子级和委托。 有关详细信息,请参阅该 NativeActivityMetadata 类。

  9. 使用 NativeActivityContext 对象来安排书签。 有关如何创建、计划和恢复书签的详细信息,请参阅 Bookmarks

    protected override void Execute(NativeActivityContext context)
        {
            // Create a Bookmark and wait for it to be resumed.
            context.CreateBookmark(BookmarkName.Get(context),
                new BookmarkCallback(OnResumeBookmark));
        }