Orchestration中的Type概念跟.NET 里的Class一样,可以在Orchestration开过过程中将多个实例绑定到一种类型。Orchestration 视图里包括的类型有Port Types , Multi-part Message Types, Correlation Types,Role Link Types。这些类型分别对应着:Port实例, Multi-part Message实例, Correlation实例, Role Link实例。
每一种Type都有三种修饰符:
- Private—只限同一模块内部访问.
- Public—访问不受限制.
- Internal—只限同一项目内部访问.(默认)
这三个概念跟.NET 里的类的修饰符作用也是一样的。一般项目创建的实例和Type都较少。不太在意思这些类型的作用域。但对于多个人共同开发的BizTalk项目。如果都按默认的设置的话会在Typs窗口里列出一堆Type,找起相应的类型来非常不方便。
下面我们来看一下置这三个分别有什么区别,(以Port Type为例)。我们在BizTalk项目中新建了两个Orchestration,分别是OrchTest_A和OrchTest_B。分别手动更改这 两个Orchestration的命名空间为: OrchTestA_Namespace和OrchTestB_Namespace(默认是一样的)。
在OrchTest_A流程的Port Types里分别新建以上三种类型的Port Type
我们在OrchTest_B流程里面看看会得到什么结果:
我们可以看到只有InternalPortType和PublicPortType可以看到。 我们在另外一个BizTalk项目引用这个项目。只有Public修饰符的Port才能显示。
总结
在多个人合作开发项目的时候可能会有一些类型是共用的类型,需要在多个流程里使用。这里就可以直接使用存在的类型而不是重新创建。Type里在开发的概念,在BizTalk项目部署的时候相同类型的不一定使用同一个端口。