欢迎来到天天文库
浏览记录
ID:40713339
大小:47.57 KB
页数:3页
时间:2019-08-06
《Qustioner应用程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Qustioner应用程序 本章的示例应用程序是一个WindowsForm应用程序,它会请你回答三个问题,问题内容你能够进行修改。(问题的内容保存在应用程序的settingsproperty中。)你也可指定这些问题是各自独立还是相互关联的。 当工作流开始执行时你要把这些问题和相关的情况传入该工作流。相互关联的问题只有在前面的问题回答正确时才会被进一步提出。例如,假如有人问你:“谈到的文档你看过吗?”,假如你没有,则没多大意义问接下来这一问题:“这个文档你批准吗?”假如问题是相关的,则第一个问题回答是否定的话,就将
2、返回否定的回答,余下的问题不予考虑也都将返回否定的回答。 各自独立的问题要求你必须回答,而不管前面的问题中你回答的是什么。例如这个问题,“你喜欢冰淇淋吗?”就和问题“现在外面在下雨吗?”是不相关的。无论你喜不喜欢冰淇淋,你的答案都和外面的天气这个问题是各自独立的。对于相互独立的问题来说,不管你在前面的问题中是肯定还是否定的回答,都会进一步被问到。 用户界面如图9-1。假如你修改三个问题中的任何一个的内容,新问题的都将自动地保存到你的应用程序的settingsproperty中(问题的类型也一样)。这些问题会产生“
3、是/否”的回答,使工作流能够把这些回答作为一个Boolean类型的数组传回到宿主应用程序中。 图9-1Questioner主应用程序界面 当你点击Execute按钮时,这些问题通过带“是”和“否”按钮的信息框依次呈现。一旦工作流处理完所有的这些问题,它就返回一个Boolean数组给宿主应用程序。宿主应用程序将检查该数组以显示不同的用户界面。 当工作流执行时,回答结果将以蓝色圆球的形式显示(如图9-1)。当工作流任务完成后,通过的回答将以绿色圆球的形式出现,未通过的回答将以红色圆球的形式出现。假如所有的回答都通过
4、了,则“最终回答结果”图片将以绿色圆球的形式呈现。但是,假如三个问题中的任何一个没有通过,则“最终回答结果”图片将以带“8”字的圆球的形式呈现。如图9-2。 图9-2Questioner应用程序执行期间的用户界面 对你来说,使用这个应用程序的目的是测试本章中的三个活动。第一次迭代,Questioner将使用IfElse活动来判断要执行什么动作过程。第二次迭代时这些问题仍然会被问到,我们将使用While活动来提问。最后一次迭代我们将使用Replicator活动来模拟for循环进行提问。对于该应用程序的每一次迭代,我
5、们都将使用前一章中演示的技术来把回答的结果传回给宿主应用程序。 使用IfElse活动 IfElse活动的作用是对if-then-else条件表达式进行模拟,其实你在前几章使用过这个活动。 IfElse活动要求你提供一个条件表达式,它其实是作为一个eventhandler执行。你创建的eventhandler有一个类型为ConditionalEventArgs的参数,它有一个Boolean类型的(名称为)Result属性。你可对其进行set,以指明该条件表达式的结果。 IfElse活动根据Result的值来指挥
6、工作流到底该执行两个分支中的哪一个。在MicrosoftVisualStudio的工作流视图设计器中,true执行的是显示在左边的路径,而false执行的是右边的路径。两个分支都可作为其它活动的容器,允许你插入任何一个你需要的工作流活动。 备注:通过本节的学习,你可能会认为,IfElse活动可能不是构建下面的工作流的最合适的活动。你在本章的后面部分将找到更加适合下面特定的工作流的活动。
此文档下载收益归作者所有