当前位置: 首页 > news >正文

贵州网站制作设计公司公司组网

贵州网站制作设计公司,公司组网,网页设计策划书方案,网站建设公司客户开发手册备注#xff1a;这篇文章的使用环境是.NET framework 4.0 RC 1 在WF4中创建native活动时#xff0c;NativeActivity是非常强大的。其众多的功能之一是围绕错误处理。 调度子活动的时的基本错误处理。 当NativeActivity执行的时候#xff0c;它是通过一个NativeActivityConte… 备注这篇文章的使用环境是.NET framework 4.0 RC 1 在WF4中创建native活动时NativeActivity是非常强大的。其众多的功能之一是围绕错误处理。 调度子活动的时的基本错误处理。     当NativeActivity执行的时候它是通过一个NativeActivityContext实例这个实例通过使用ScheduleActivity()函数来调度其他活动。ScheduleActivity()函数有几个重载其中一个使用了FaultCallback。当执行被调度的子活动发生一些异常时就会调用FaultCallback。调用错误处理函数需要一组参数这些参数包括NativeActivityFaultContext和未处理的异常。该NativeActivityFaultContext包含一个用于错误处理的HandleFault()函数。考虑到工作流的异步特性最直接的一个try / catch块是行不通。     因此我希望下面活动能捕获任何异常然后继续。  1     public sealed class MyActivity : NativeActivity  2     { 3         public Activity Body { get; set; }  4         protected override void Execute(NativeActivityContext context) 5         {  6             context.ScheduleActivity(Body, FaultHandler); 7         }  8         private void FaultHandler(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom) 9         {10             Console.WriteLine(propagatedException.Message);11             faultContext.HandleFault(); 12         }13     } 不要使用此代码它有一个严重的错误 让我们通过执行下面的工作流测试一下这段代码  1         private static Activity CreateWorkflow()  2         {  3             return new Sequence  4             {  5                 Activities  6                 {  7                     new WriteLine { Text  Start outer sequence. }, 8                     new MyActivity  9                     { 10                         Body  new Sequence11                         { 12                             Activities  13                             { 14                                new WriteLine { Text  Start inner sequence. },15                                new Throw 16                                {17                                    Exception  new InArgumentException(ctx  new DivideByZeroException())18                                },19                                new WriteLine { Text  End inner sequence. } 20                             }21                         }22                     }, 23                      new WriteLine { Text  End outer sequence. }24                 } 25             }; 26         } 对于这个工作流我期待下面这样的输出 但实际情况是别的东西我会收到以下输出   即使异常被上级捕获我们可以看到第二个内部的WriteLine仍然执行了 这种现象让我们想起了臭名昭著VB6 On Error Resume Next 当某语句出现错误时,跳过它,执行下面一行的代码。 这并不是我真正期待和希望的。修复很容易。所需要做的是使用CancelChild()函数明确取消正在执行的子活动。下面是NativeActivity的正确版本。  1    public sealed class MyActivity : NativeActivity  2     { 3         public Activity Body { get; set; }  4         protected override void Execute(NativeActivityContext context) 5         {  6             context.ScheduleActivity(Body, FaultHandler); 7         }  8         private void FaultHandler(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom) 9         {10             Console.WriteLine(propagatedException.Message);11             faultContext.HandleFault();12             faultContext.CancelChild(propagatedFrom);13         }14     } 本文转自麒麟博客园博客原文链接http://www.cnblogs.com/zhuqil/archive/2010/03/11/error-handling-in-a-nativeactivity.html如需转载请自行联系原作者
http://www.pierceye.com/news/486812/

相关文章:

  • 网站开发工程师的要求做seo要明白网站内容
  • 如何做天猫网站医学ppt模板免费下载网站
  • 网站上的通话功能怎么做网站用不用备案
  • 信誉好的模板网站建设wordpress 伪静态设置
  • wordpress主题外贸网站wordpress检查php版本号
  • 便宜电商网站建设找平面图的网站
  • 大型网站建设制作平台东莞南城房价
  • 360免费视频网站建设mvc网站开发之美
  • 武宁县建设工程招标公告门户网站设计一个网站先做哪些构造
  • 公司网站免费建设2023设计院裁员惨烈程度
  • 别人做的网站不能用设计网站教程
  • 设计师发布作品的网站wordpress仿
  • 品牌微信网站建设柳州做网站制作的公司有哪些
  • 买域名做网站推广都是些什么网站点击后的loading是怎么做的
  • 北京网站优化技术泰州自助建站软件
  • 公司企业网站建设目的站长统计官方网站
  • 集团公司网站模板wordpress更换主题方法
  • 临沂网站建设电话建设网站审批手续
  • 国外做健康的网站专门做鞋子的网站吗
  • 手机网站支持微信支付吗北京短视频拍摄
  • 做静态网站工资多少网站前期推广
  • 做预算查价格的网站是哪个好网站开发维护多少钱
  • 个人互动网站365建筑人才网
  • 天津外贸公司网站制作淘客cms网站建设
  • 怎样做微网站网站建设pc指什么软件
  • 四川 网站建设wordpress腾讯地图插件下载
  • 宁波网站公司哪家好百度关键词搜索量排名
  • 北京国税局网站做票种核定时眉山网站优化
  • 网站备案授权书成都网站建设十强企业
  • 网站流量图怎么做的wordpress单号管理系统