BizTalk -->

by muyanpeng

导航

BizTalk 如何调用 DLL

Posted on 2007-10-30 16:17  穆彦鹏  阅读(1053)  评论(4编辑  收藏  举报
在有的时候BizTalk的功能不足以实现某些逻辑处理或某些复杂的逻辑处理被放在了DLL中的时候,就需要BizTalk能够调用DLL,并使用其中的方法。

1.在流程中调用DLL,并在DLL中进行消息的处理:
新建解决方案:BizTalkUseDLL
右键盘BizTalkUseDLL添加新建工程:TestClassLibrary
右键盘BizTalkUseDLL添加新建工程:BizTalkTestDllProject

TestClassLibrary的class1的代码如下:
 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4using System.Xml;
 5
 6namespace TestClassLibrary
 7{
 8    public class Class1
 9    {
10        public static XmlDocument methodXML(XmlDocument xd)
11        {
12            XmlDocument xd1 = new XmlDocument();
13            xd1.InnerXml = xd.InnerXml;
14            string temp = xd1.ChildNodes[0].ChildNodes[0].InnerText;
15            xd1.ChildNodes[0].ChildNodes[0].InnerText = xd1.ChildNodes[0].ChildNodes[1].InnerText;
16            xd1.ChildNodes[0].ChildNodes[1].InnerText = temp;
17            return xd1;
18        }

19    }

20}

21

TestClassLibrary的属性里进行如下设置:

生成TestClassLibrary
BizTalkTestDllProjectTestClassLibrary进行引用


进行biztalk部分编程:
BizTalkTestDllProject添加消息:


 <?xml version="1.0" encoding="utf-16" ?> 
 
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://BizTalkTestDllProject.Schema1" targetNamespace="http://BizTalkTestDllProject.Schema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
 
<xs:sequence>
  
<xs:element name="a" type="xs:string" /> 
  
<xs:element name="b" type="xs:string" /> 
  
</xs:sequence>
  
</xs:complexType>
  
</xs:element>
  
</xs:schema>

然后新建立一个流程:
1.为建立的流程创建两个消息,使用的消息类型都是"Schema1"即可:
    1.接受一个消息  (Message1)  
    2.原样输出消息  (Message1)
    3.调用DLL 将 Message1 作为参数传入 生成Message2 传出 (Message1  --〉  Message2)
      代码:
Message_2 = TestClassLibrary.Class1.methodXML(Message_1);
    4.输出转化完的消息 (Message2)  
    




部署项目 , 配置测试端口 ,并将TestClassLibrary的DLL放到C:\WINDOWS\assembly

测试项目 :
1 输入:
<ns0:Root xmlns:ns0="http://BizTalkTestDllProject.Schema1">
  
<a>a_0</a> 
  
<b>b_0</b> 
</ns0:Root>

2 输出1:
<?xml version="1.0" encoding="utf-8"?><ns0:Root xmlns:ns0="http://BizTalkTestDllProject.Schema1">
  
<a>a_0</a> 
  
<b>b_0</b> 
</ns0:Root>


3 输出2:
<?xml version="1.0" encoding="utf-8"?><ns0:Root xmlns:ns0="http://BizTalkTestDllProject.Schema1">
  
<a>b_0</a>
  
<b>a_0</b>
</ns0:Root>



OK 全部搞定