当前位置: 首页 > 工具软件 > Dropthings > 使用案例 >

开源项目dropthings的工作流接口IWorkflowHelper

公孙俭
2023-12-01

这是开源项目dropthings的工作流接口IWorkflowHelper

系统版本 Dropthings-2.1

namespace Dropthings.Business.Workflows
 {
     using System;
     using System.Workflow.Runtime;
 
    public interface IWorkflowHelper
     {
         #region Methods
 
        void ExecuteWorkflow(WorkflowRuntime runtime, Type workflowType, System.Collections.Generic.Dictionary<string, object> properties);
 
        TResponse ExecuteWorkflow<TWorkflow, TRequest, TResponse>(WorkflowRuntime runtime, TRequest request)
             where TResponse : new();
 
        #endregion Methods
     }
 }


 

其中,定义了执行工作流的2个方法。主要是负责初始化工作流的执行环境及准备执行工作流。
在第二个方法中,用到了c#2005(C#2.0)中添加的新功能泛型。
这个功能,在c#2008(c#3.0)中没有变化。
TWorkflow, TRequest, TResponse是泛型类型描述性的名称,用字母T作为前缀,可以用任意类来代替他们。
where TResponse : new() 是一个构造器约束,TResponse必须要有一个默认构造器。
并且,在clr2.0中(.net2 /3/3.5的clr都是clr2.0),只能为默认构造器定义约束,而不能为其他构造器。

在c#的说明文档中,有如下的提示:
  where子句的一个重要限制,不能定义必须有泛型类型执行的运算符,运算符不能在接口中定义。
  在where子句中,只能定义基类、接口和默认构造函数。

 

 类似资料: