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 数据类型。