Windows Workflow 4.0 FlowSwitch无法正常工作

时间:2009-10-13 18:09:32

标签: visual-studio visual-studio-2010 workflow-foundation workflow-foundation-4

我正在Visual Studio 2010中的Windows Workflow 4.0项目中创建一个FlowChart。我添加了一个FlowSwitch,其中包含一个作为In Argument传递给Activity的变量的表达式}}。我可以调试并看到值正确传递,但是我的FlowSwitch根本没有切换到被定义为传入的值的情况。我已经将FlowSwitch定义为Activity作为{的数值。 {1}}应该等于。有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

FlowSwitch目前使用字符串值。尝试将InArgument转换为字符串。

示例XAML:

<p:Activity mc:Ignorable="" x:Class="WorkflowConsoleApplication2.Flowchart1" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design" xmlns:__Flowchart1="clr-namespace:WorkflowConsoleApplication2;" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <p:Flowchart StartNode="{x:Reference __ReferenceID0}" sad:XamlDebuggerXmlReader.FileName="c:\temp\WorkflowConsoleApplication2\WorkflowConsoleApplication2\Flowchart1.xaml">
    <WorkflowViewStateService.ViewState>
      <scg:Dictionary x:TypeArguments="x:String, s:Object">
        <av:Point x:Key="ShapeLocation">275,10</av:Point>
        <av:Size x:Key="ShapeSize">50,50</av:Size>
        <av:PointCollection x:Key="ConnectorLocation">300,60 300,110</av:PointCollection>
      </scg:Dictionary>
    </WorkflowViewStateService.ViewState>
    <p:FlowSwitch x:Name="__ReferenceID0" Expression="[&quot;2&quot;]">
      <p:FlowSwitch.Default>
        <p:FlowStep x:Name="__ReferenceID1">
          <WorkflowViewStateService.ViewState>
            <scg:Dictionary x:TypeArguments="x:String, s:Object">
              <av:Point x:Key="ShapeLocation">235,293</av:Point>
              <av:Size x:Key="ShapeSize">200,34</av:Size>
            </scg:Dictionary>
          </WorkflowViewStateService.ViewState>
          <p:WriteLine>["Default"]</p:WriteLine>
        </p:FlowStep>
      </p:FlowSwitch.Default>
      <WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, s:Object">
          <av:Point x:Key="ShapeLocation">270,110</av:Point>
          <av:Size x:Key="ShapeSize">60,60</av:Size>
          <av:PointCollection x:Key="Default">300,170 285,170 285,283 335,283 335,293</av:PointCollection>
          <av:PointCollection x:Key="1Connector">300,170 300,205 330,205</av:PointCollection>
          <av:PointCollection x:Key="2Connector">300,170 300,180 290,180 290,270 340,270</av:PointCollection>
        </scg:Dictionary>
      </WorkflowViewStateService.ViewState>
      <p:FlowStep x:Name="__ReferenceID2">
        <x:Key>
          <x:String>1</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">330,188</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 1 "]</p:WriteLine>
      </p:FlowStep>
      <p:FlowStep x:Name="__ReferenceID3">
        <x:Key>
          <x:String>2</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">340,253</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 2"]</p:WriteLine>
      </p:FlowStep>
    </p:FlowSwitch>
    <x:Reference>__ReferenceID2</x:Reference>
    <x:Reference>__ReferenceID3</x:Reference>
    <x:Reference>__ReferenceID1</x:Reference>
  </p:Flowchart>
</p:Activity>