千家信息网

WF4.0 Beta2中的Switch<T>是什么

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关WF4.0 Beta2中的Switch是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于微软的WF工作流,很多开发人员都有过接触。
千家信息网最后更新 2025年11月07日WF4.0 Beta2中的Switch<T>是什么

这篇文章将为大家详细讲解有关WF4.0 Beta2中的Switch是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

对于微软的WF工作流,很多开发人员都有过接触。对于新版的WF4.0 Beta2,有许多新特性值得我们去开发和体验。这些新特性能给我们带来事半功倍的效果。

Switch是WF4.0中新增的活动。功能类似于C#语言中的Switch语句,但是C#的Switch语句只能是一般的Int,String等类型。在WF4.0中Switch可以使用
用于自定义的复杂类型。下面例子完成根据不同的Person执行不同的分支。

1.下面是Person类,在Person类中我们必须要重写Equals方法和GetHashCode方法,代码如下:

[TypeConverter(typeof(PersonConverter))]      public class Person      {          public string Name { get; set; }          public int Age { get; set; }           public Person()          {              this.Age = 15;          }           public Person(string name, int age)          {              this.Name = name;              this.Age = age;          }           public Person(string name) : this()          {              this.Name = name;          }           public override bool Equals(object obj)          {              Person person = obj as Person;              if (person != null)              {                  return string.Equals(this.Name, person.Name);              }              return false;          }           public override int GetHashCode()          {              if (this.Name != null)              {                  return this.Name.GetHashCode();              }              return 0;          }      }

2.TypeConverter 类是.NET提供的类型换器 就是将一种类型(object,可以说是任何类型)转换到另一种类型(一般为string),或者将另一种类型转换回来。
我们实现上面的Person的PersonConverter,如下:

public class PersonConverter : TypeConverter      {          public override bool CanConvertFrom(ITypeDescriptorContext context,Type sourceType)          {              return (sourceType == typeof(string));          }                    public override object ConvertFrom(ITypeDescriptorContext context,CultureInfo culture, object value)          {              if (value == null)              {                  return null;              }              if (value is string)              {                  return new Person                  {                      Name = (string)value                  };              }              return base.ConvertFrom(context, culture, value);          }                    public override object ConvertTo(ITypeDescriptorContext context,CultureInfo culture,                                          object value, Type destinationType)          {              if (destinationType == typeof(string))              {                  if (value != null)                  {                      return ((Person)value).Name;                  }                  else                 {                      return null;                  }              }              return base.ConvertTo(context, culture, value, destinationType);          }      }

3.工作流设计如下:

3.1.定义一个Person类型的变量p1,Scope为Sequence。

3.2.工作流设计中首先是一个Assign活动来实例化p1,然后在Switc中根据p1的不同值来判断走不同的分支。

3.3.运行程序结果为:Hello Cary。

关于"WF4.0 Beta2中的Switch是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

类型 不同 工作流 篇文章 工作 分支 方法 更多 语句 C# 开发 活动 设计 不错 复杂 实用 事半功倍 人员 代码 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全岗位及人员工作职责制度 计算机网络技术考试机试 软件开发集成环境搭建 服务器一键ghost 华为服务器如何设置光盘启动 传奇服务器开区教学 河南服务器机柜厂家价格 服务器管理工具在哪个地方 网络安全及网络舆情处理置 数据库中什么是强制存取控制方法 金仓v7 命令行链接数据库 武汉游戏软件开发学校 超凡先锋连接不上服务器信息 最近网络安全事件及影响 数据库多链表的连接两个表的要求 并行软件开发涉及到的技术 杭州计算机网络技术排名 跟阿里巴巴合作的服务器企业 学籍管理数据库心得 三亚订票软件开发 宜昌市 网络安全工作责任制 网络安全教授候亮 智能pcb板硬软件开发定制 学网络技术要学些什么 中兴软件开发岗薪资怎样 幻塔服务器星岛是官服嘛 网络安全教师人才 台州办公软件开发 软件开发调研问卷 网络安全比赛是什么专业
0