⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workflow18.xoml.cs

📁 WWF中的基本活动的简单示例,例如IfElseActivity、WhileActivity活动
💻 CS
字号:
//《WF编程》系列之18 - 触发事件与调用方法:服务合同 Service Contracts 
//3.2.3 触发事件与调用方法


//许多开发人员想要建立一个更加正式的机制来方便和工作流交互.尽管使用Dictionary可以简单灵活的向工作流传递数据,但这种方法需要参数名称和伴随属性的严格匹配.而且我们只可以在工作流开始时使用参数向工作流传递数据,或在结束是获取数据.许多工作流需要在执行过程的不同时期和宿主交换数据.我们可以使用事件和方法调用来达到这个目的.这一节,我们来讨论数据传输通信的基本原理.
//3.2.3.1服务合同 Service Contracts
//工作流和其宿主可以通过本地通信服务(LCS,local communication service)交换数据.LCS允许工作流和宿主之间的事件和方法调用.在后台,工作流Runtime和LCS一起工作来截取通信并提供附加服务(就像事件在排队直到工作流处于可以接受事件的状态). 
//通过LCS进行通信需要一个消息合同,在.NET中,合同即接口的意思.接口定义了LCS暴露的事件和方法.事件从宿主传递数据到工作流,而方法从工作流传递数据到宿主.例如,下面的bug跟踪服务接口定义中包含一个事件和一个方法:

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;

namespace WorkflowConsoleApplication1
{
	public partial class Workflow18 : SequentialWorkflowActivity
	{


        public static DependencyProperty NewBug_e1Property = DependencyProperty.Register("NewBug_e1", typeof(WorkflowConsoleApplication1.BugAddedArgs), typeof(WorkflowConsoleApplication1.Workflow18));
        public static DependencyProperty AssignBug_bug1Property = DependencyProperty.Register("AssignBug_bug1", typeof(WorkflowConsoleApplication1.Bug), typeof(WorkflowConsoleApplication1.Workflow18));

        [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
        [BrowsableAttribute(true)]
        [CategoryAttribute("参数")]
        public BugAddedArgs NewBug_e1
        {
            get
            {
                return ((WorkflowConsoleApplication1.BugAddedArgs)(base.GetValue(WorkflowConsoleApplication1.Workflow18.NewBug_e1Property)));
            }
            set
            {
                base.SetValue(WorkflowConsoleApplication1.Workflow18.NewBug_e1Property, value);
            }
        }

        [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
        [BrowsableAttribute(true)]
        [CategoryAttribute("参数")]
        public Bug AssignBug_bug1
        {
            get
            {
                return ((WorkflowConsoleApplication1.Bug)(base.GetValue(WorkflowConsoleApplication1.Workflow18.AssignBug_bug1Property)));
            }
            set
            {
                base.SetValue(WorkflowConsoleApplication1.Workflow18.AssignBug_bug1Property, value);
            }
        }

        private void AssignBug_MethodInvoking(object sender, EventArgs e)
        {
            AssignBug_bug1 = NewBug_e1.NewBug;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -