In the past weeks I spent a lot of time developing a solution that adds discovery features to BizTalk Server 2004 via UDDI. Using this solution you can publish your Ports, PortTypes, Messages, Roles, among other BizTalk elements.
That is the main reason for which I am not blogging a lot this month.
In the next days I plan to post some reflections about interesting aspects of BizTalk Server 2004 and my solution
To start I want to talk about Microsoft.BizTalk.Reflection assembly. This assembly provides support for some reflection features in BizTalk assemblies. Using this assembly we can list orchestrations, PortTypes, Roles, Messages, etc. This assembly complements other well-documented features in BizTalk like WMI support.
The main component of Microsoft.BizTalk.Reflection is the Reflector class. Using this class we can load the assembly containing the orchestration and start to discover data. The next code shows how to do this task.
Reflector rf= new Reflector();
rf.LoadAssembly(…My assembly path…);
Once we have loaded the assembly we can list BizTalk elements. The next code shows how to list the orchestrations of the assembly.
IEnumerable List= rf.GetServices();
IEnumerator ServiceEnum= List.GetEnumerator();
ServiceInfo CurrentService= (ServiceInfo)ServiceEnum.Current;
Similar code can be applied to list PortTypes, Roles, Schemas, Pipelines, etc. Well, as you can see WMI isn’t the only way to discover properties of BizTalk elements. Microsoft.BizTalk.Reflection offers a nice model to do reflection over BizTalk elements but, surprise, it is not the only assembly to do this tasks. In next posts I talk about Microsoft.BizTalk.TypeSystem.
I hope that you had enjoyed this port. Please send me you opinions.