zoukankan      html  css  js  c++  java
  • 学习WF笔记9 自定义活动中事件类型的属性(3)

    在活动的属性窗口中有两种类型的属性,一种是在第2节讲到的普通属性,另外一种是事件类型的属性。用户可以通过该属性创建相应的事件,例如:利用Code活动的“ExecuteCode”属性来创建一个事件,开发人员可以在该事件中执行相应的业务操作。在自定义活动中创建事件类型属性与创建普通属性的方法基本相同,也是通过“DependencyProperty”属性来对事件类型的属性进行管理,而它所对应的属性类型不再是“String”或“int,而是“event”类型的属性,其代码如下所示。

    Public     static       DependencyProperty       PrintEvent=DependencyProperty.Register(“Print”,typeof(EventHandler),typeof(Activity1));

    [Description(“打印一个字符串”)]

    [Browsable(true)]

    Public event EventHandler Print

    {

           add{

                  base.AddHandler(Activity1.PrintEvent,value);

    }

    remove

    {

           base.RemoveHandler(Activity1.PrintEvent,value);

    }

    }

    通过以上步骤就实现了一个事件类型属性的定义,但该属性还不能执行。用户必须重载父类的“Execute”方法,并通过“RaiseEvent”来加载相应“DependencyProperty”属性,其代码如下所示。

    Protected override ActivityExecutionStatus Execute(ActivityExecutionContext context)

    {

           base.RaiseEvent(Activity1.PrintEvent,this,EventArgs.Empty);

           return ActivityExecutionStatus.Closed;

    }

     

    创建自定义活动

    用户可以使用以上代码创建自定义活动,编译成功后将它添加到工作流设计界面中,如图1所示,在属性窗口中通过“Print”属性创建一个可用于执行的事件“ExePrint”,其代码如下所示。

    private void ExePrint(object sender,EventArgs e)

    {

    Console.Write(“自定义活动中定义的方法PrintEvent被执行!\r\n);
    }

    1

    运行工作流项目,如图2所示,用户通过属性“Print”创建的事件“ExePrint”被执行

    2

  • 相关阅读:
    冰蝎,从入门到魔改
    红蓝对抗——加密Webshell“冰蝎”攻防
    DGA域名的今生前世:缘起、检测、与发展
    DNS隐藏隧道的使用
    DPI (Deep Packet Inspection) 深度包检测技术
    中国菜刀原理
    一句话木马和中国菜刀的结合拿webshell
    十大黑客工具之一——中国菜刀
    十大ATT&CK攻击技战术
    防守方新秘籍:MITRE 发布主动防御指导框架Shield
  • 原文地址:https://www.cnblogs.com/meiweijun/p/1609828.html
Copyright © 2011-2022 走看看