Workflow Manager 1.0 数据类型支持和表达式活动

 

Workflow Manager 1.0提供属于以下两个类别的活动:用于处理表达式和数据类型的活动,以及用于消息传递、通信和构建 Workflow 应用程序逻辑的活动。第一个类别的活动最常用于需要将表达式转换为活动树(由受信任图面中的活动组成)的场合。本主题概述了这些活动。

  • 字符串活动

  • 日期支持活动

    • DateTime 活动

    • TimeSpan 活动

  • 数字类型活动

  • 布尔值活动

  • Guid 活动

  • 集合活动

    • ICollection

    • IDictionary

  • 异常活动

  • Uri 活动

字符串活动

以下活动为处理字符串提供支持。

活动

说明

参数

CompareString

比较两个字符串(类似于 IComparable)。支持正则表达式并忽略大小写。

不支持传递显式区域性(使用固定区域性执行所有比较)

InArgument<string> Left

InArgument<string> Right

InArgument<bool> IgnoreCase

OutArgument<int> Result

ConcatString

连接一组字符串。

所有输入必须是字符串数据类型,不能是对象。

Collection<InArgument<string> Inputs

OutArgument<bool> Result

ContainsString

如果某个字符串包含在另一个字符串中,则返回 true

Contains 始终区分大小写。

InArgument<string> Input

InArgument<string> SearchValue

OutArgument<bool> Result

EndsWithString

如果某个字符串以另一个字符串结尾,则返回 true。支持不区分大小写的运算。

不支持传递显式区域性(设计使用固定区域性执行所有比较)

InArgument<string> Left

InArgument<string> Right

InArgument<bool> IgnoreCase

OutArgument<bool> Result

FormatString

设置可传递一组参数的字符串的格式。参数可以是任何类型(因为参数集合为 InArgument 类型)。

不支持传递显式区域性(设计使用固定区域性执行所有比较)

不支持自定义的 IFormatProviders

InArgument<string> Format

Collection<InArgument> Arguments

IndexOfString

返回某个字符串出现在另一个字符串中的索引。

不支持传递显式区域性(设计使用固定区域性执行所有比较)

用于支持不区分大小写运算的 IgnoreCase 标志不受支持。

InArgument<string> Input

InArgument<string> SearchValue

InArgument<int> StartIndex

InArgument<int> Count

OutArgument<int> Index

IsEmptyString

如果某个字符串为空或空白,则返回 true

InArgument<string> Input

InArgument<bool> CheckForWhiteSpace

OutArgument<bool> Result

IsEqualString

如果两个字符串相等,则返回 true。也支持使用 RegEx 的比较 - 支持忽略大小写。

不支持传递显式区域性(设计使用固定区域性执行所有比较)

InArgument<string> Input

InArgument<string> Pattern

InArgument<string> Text

InArgument<bool> IgnoreCase

OutArgument<bool> Result

ReplaceString

将一个字符串替换为另一个字符串。支持 RegEx 替换。

InArgument<string> Input

InArgument<string> Pattern

InArgument<string> ExistingValue

InArgument<string> Replacement

OutArgument<string> Result

SplitString

基于现有的字符串返回字符串的数组。

InArgument<string> Input

InArgument<string> Separator

InArgument<StringSplitOptions> StringSplitOptions

OutArgument<string[]> Result

StartsWithString

如果某个字符串以另一个字符串开头,则返回 true。支持不区分大小写的运算。

不支持传递显式区域性(设计使用固定区域性执行所有比较)。

InArgument<string> Left

InArgument<string> Right

bool IgnoreCase

OutArgument<bool> Result

StringLength

返回字符串的长度。

InArgument<string> Input

OutArgument<int> Result

Substring

从现有字符串返回子字符串。用户可以指定开头和长度。

InArgument<string> Input

InArgument<int> StartIndex

InArgument<int> Length

OutArgument<string> Result

ToLowerCase

将输入字符串转换为小写

不支持传递显式区域性(设计使用固定区域性执行所有比较)。

InArgument<string> Input

OutArgument<string> Result

ToString

将输入值转换为字符串。支持传递有效的 .NET 格式字符串和区域性名称,以便在转换期间使用。

不支持传递 IFormatProviders(只能指定区域性名称)

InArgument Object

InArgument<string> Format

InArgument<string> CultureName

OutArgument<string> Result

ToUpperCase

将输入字符串转换为大写

不支持传递显式区域性(设计使用固定区域性执行所有比较)。

InArgument<string> Input

OutArgument<string> Result

Trim

修整字符串的内容

不支持传递要修整的字符集。

InArgument<string> Input

OutArgument<string> Result

日期支持活动

在处理 DateTime 和 TimeSpan 类型时,可以使用以下活动。

  • DateTime 活动

  • TimeSpan 活动

DateTime 活动

活动

说明

参数

AddToDate

添加到现有日期。客户可以添加一个或多个日期片段(例如天、分钟、月等)或时间跨度

InArgument<DateTime> Input

InArgument<int> Days

InArgument<int> Months

InArgument<int> Hours

InArgument<int> Minutes

InArgument<int> Milliseconds

InArgument<TimeSpan> TimeSpan

OutArgument<DateTime> Result

CompareDate

比较两个日期(类似于 IComparable)

InArgument<DateTime> Left

InArgument<DateTime> Right

OutArgument<int> Result

ConvertTimeZone

在两个给定的时区之间转换日期

InArgument<DateTime> Input

InArgument<DateTime> SourceTimeZone

InArgument<DateTime> DestinationTimeZone

OutArgument<DateTime> Result

CreateDate

创建某个传递日期组成部分的新 DateTime 的实例。日期可以是本地日期或 UTC 日期。

不支持基于计时周期数创建日期。

InArgument<int> Day

InArgument<int> Month

InArgument<int> Year

InArgument<int> Hour

InArgument<int> Minute

InArgument<int> Second

InArgument<DateTimeKind> Kind

OutArgument<DateTime> Result

CurrentDate

从服务器返回 UTC 时间格式的当前日期。

OutArgument<Result> DateTime

DateInRange

如果某个日期在其他两个日期的范围内,则返回 true

InArgument<DateTime> Input

InArgument<DateTime> Start

InArgument<DateTime> End

OutArgument<bool> Result

DelayUntil

等到给定的日期

InArgument<DateTime> Date

GetDateField

返回 DateTime 实例的字段

InArgument<DateTime> Input

DateField DateField

OutArgument<int> Result

GetDateFields

返回 DateTimeInstance 的字段

InArgument<DateTime> Input

OutArgument<int> Year

OutArgument<int> Month

OutArgument<int> Day

OutArgument<int> Hour

OutArgument<int> Minute

OutArgument<int> Second

GetElapsedDays

获取在两个日期之间消逝的天数。用户可以排除周末和假日

InArgument<DateTime> Start

InArgument<DateTime> End

InArgument<bool> ExcludeWeekends

InArgument<IEnumerable<DateTime>> ExcludedDates

OutArgument<int> Result

GetElapsedTime

返回在两个日期之间消逝的时间

InArgument<DateTime> Start

InArgument<DateTime> End

OutArgument<TimeSpan> Result

SubtractFromDate

从日期中减除。用户可以传递日期片段(例如小时数或天数)或 TimeSpan。

InArgument<DateTime> Input

InArgument<int> Days

InArgument<int> Hours

InArgument<int> Minutes

InArgument<int> Seconds

InArgument<TimeSpan> TimeSpan

OutArgument<DateTime> Result

ParseDate

将字符串分析成 DateTime。支持传递 CultureName(区域性在活动中创建)和 DateTimeStyle

InArgument<string> Value

InArgument<DateTimeStyles> DateTimeStyles

InArgument<string> CultureName

TimeSpan 活动

活动

说明

签名

CreateTimeSpan

创建 TimeSpan 的实例

InArgument<int> Days

InArgument<int> Minutes

InArgument<int> Hours

InArgument<int> Seconds

OutArgument<TimeSpan> Result

Delay

等待给定的 TimeSpan

InArgument<TimeSpan> Duration

GetTimeSpanFields

获取 TimeSpan 的不同字段

InArgument<TimeSpan> Input

OutArgument<int> Days

OutArgument<int> Hours

OutArgument<int> Minutes

OutArgument<int> Seconds

OutArgument<int> TotalDays

OutArgument<int> TotalHours

OutArgument<int> TotalMinutes

OutArgument<int> TotalSeconds

数字类型活动

以下活动为处理 Int32 和 Double 数据类型提供支持。

活动

说明

参数

Add<T>

将两个数字相加

InArgument<T> Left

InArgument<T> Right

OutArgument<T> Result

Divide<T>

将两个数字相除

InArgument<T> Left

InArgument<T> Right

OutArgument<T> Result

IsEqualNumber<T>

如果两个数字相等,则返回 true

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

IsGreaterThan<T>

如果一个数字大于另一个数字,则返回 true

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

IsGreaterThanOrEqual<T>

如果一个数字大于或等于另一个数字,则返回 true

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

IsLessThan<T>

如果一个数字小于另一个数字,则返回 true

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

IsLessThanOrEqual<T>

如果一个数字小于或等于另一个数字,则返回 true

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

Mod<T>

Mod 运算

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

Multiply<T>

将两个数字相乘

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

ParseNumber<T>

分析一个数字

InArgument<string> Value

InArgument<string> CultureName

InArgument<NumberStyles> NumberStyles

OutArgument<bool> Result

Subtract<T>

将两个数字相减

InArgument<T> Left

InArgument<T> Right

OutArgument<bool> Result

布尔值活动

以下活动为处理布尔值提供支持。

活动

说明

参数

“逻辑与”运算

InArgument<bool> Left

InArgument<bool> Right

InArgument<bool> Result

IsEqualBoolean

两个布尔值之间的逻辑相等运算

InArgument<bool> Left

InArgument<bool> Right

InArgument<bool> Result

IsFalse

如果某个布尔值为 False,则返回 true

InArgument<bool> Input

InArgument<bool> Result

IsTrue

如果某个布尔值为 True,则返回 true

InArgument<bool> Input

InArgument<bool> Result

求反

InArgument<bool> Input

InArgument<bool> Result

或者

逻辑或

InArgument<bool> Left

InArgument<bool> Right

InArgument<bool> Result

ParseBoolean

分析一个布尔值

InArgument<string> Input

InArgument<bool> Result

Guid 活动

以下活动为处理 Guid 提供支持。

活动

说明

参数

IsEmptyGuid

如果某个 Guid 为空,则返回 true

InArgument<Guid> Value

OutArgument<bool> Result

IsEqualGuid

如果两个 Guid 相等,则返回 true

InArgument<Guid> Left

InArgument<Guid> Right

OutArgument<bool> Result

NewGuid

创建并返回一个新的 Guid

OutArgument<Guid> Result

ParseGuid

分析字符串中的 Guid

InArgument<string> Value

OutArgument<Guid> Result

集合活动

以下活动为处理集合提供支持。ICollection 活动可用于处理可由索引访问的项目集合,IDictionary 活动可用于处理键/值对集合。

  • ICollection

  • IDictionary

ICollection

活动

说明

参数

AddToCollection<T>

将项目添加到集合(从 System.Activities)

InArgument<ICollection<T>> Collection

InArgument<T> Item

RemoveFromCollection<T>

在集合中删除项目(从 System.Activities)

InArgument<ICollection<T>> Collection

InArgument<T> Item

OutArgument<bool> Result

ExistsInCollection<T>

如果项目在集合中存在,则返回 true(从 System.Activities)

InArgument<ICollection<T>> Collection

InArgument<T> Item

OutArgument<bool> Result

ClearCollection<T>

清除集合(从 System.Activities)

InArgument<ICollection<T>> Collection

BuildCollection<T>

创建并初始化集合

InArgument<IEnumerable<T>> Collection

ICollection<InArgument<T>> ValuesOutArgument<Collection<T>> Result

CountCollection<T>

统计集合中的项目

InArgument<ICollection<T>> Collection

OutArgument<int> Result

GetItemFromCollection<T>

从集合中获取项目

InArgument<ICollection<T>> Collection

InArgument<int> Index

OutArgument<T> Result

IDictionary

活动

说明

参数

AddToDictionary<K,V>

将项目添加到集合(从 System.Activities)

InArgument<IDictionary<K,V>> Dictionary

InArgument<K> Key

InArgument<V> Value

RemoveFromDictionary<T>

在字典中删除项目(从 System.Activities)

InArgument<IDictionary<K,V>> Dictionary

InArgument<K> Key

DictionaryContains<K,V>

如果项目在字典中存在,则返回 true(从 System.Activities)

InArgument<IDictionary<K,V>> Dictionary

InArgument<K> Key

InArgument<V> Value

OutArgument<bool> Result

ClearDictionary<K,V>

清除集合(从 System.Activities)

InArgument<IDictionary<K,V>> Dictionary

BuildDictionary<K,V>

创建并初始化集合

InArgument<IDictionary<K,V>> Dictionary

IDictionary<TKey, InArgument<TValue>> Values

OutArgument<IDictionary<K,V>> Result

CountDictionary<K,V>

统计集合中的项目

InArgument<IDictionary<K,V>> Dictionary

OutArgument<int> Result

SplitKeyValuePair<K,V>

从 KeyValuePair 中拆分出键与值

InArgument<KeyValuePair<K,V>> Dictionary

OutArgument<K> Key

OutArgument<V> Value

GetDictionaryValue<K,V>

从字典中获取某个值

InArgument<IDictionary<K,V>> Dictionary

InArgument<K> Key

OutArgument<V> Result

异常活动

以下活动为异常处理提供支持。

活动

说明

参数

TryCatch

工作流中的异常处理

此活动来自 WF4

Throw

引发异常

此活动来自 WF4

InArgument<Exception> Exception

Rethrow

重新引发异常(在 c# 中类似于不带参数的“throw”)

此活动来自 WF4

CreateException<T>

创建异常的实例

InArgument<string> Message

InArgument<Exception> InnerException

Uri 活动

受信任列表支持 Uri 数据类型,并且以 Uri 作为参数的其他活动可以使用 Uri 数据类型。可以使用 New<Uri> 活动和 CreateUriFromDynamicValue 活动来创建 Uri 数据类型。