Bryant Likes's Blog

It's all about WebData

Recent Posts

Tags

News


  • Windows Live Alerts
    View Bryant Likes's profile on LinkedIn

    Me

    The posts on this weblog are provided "as is" with no warranties and confer no rights. The opinions expressed herin are the personal opinions of the individual authors and do not represent the views of Avanade in any way.

Community

Email Notifications

Archives

Testing Custom Flat File Disassemblers

At my current project for Avanade I've been working with Hisham (who is also my Career Manager and whose blog I read before I even knew about Avanade) and we've been doing a lot of BizTalk stuff. As he stated here, BizTalk development, without the help of some external tools, can be very time consuming just in the build->deploy->bind->enlist->start process of running BizTalk. One of the pieces that I've been working on is a custom Flat File disassembler. I found that testing my component within BizTalk was very time consuming. I also knew that there was a utility in the SDK for testing flat file disassembly (FFDasm.exe) which uses the standard flat file disassembler (FFDasmComp). So, with a little help from Reflector, on my flight to Seattle I hacked together a new version of the utility (FFDasmEx.exe) which accepts an additional parameter for the name of the custom pipeline component that you would like it to use instead of the standard disassembler.

This makes testing a breeze as you can simply compile your pipeline component assembly, copy it to the Pipeline Components folder, and then run your test. You can easily debug your component using this same method but running the FFDasmEx project in debug mode.

If anyone is interested let me know and I'll zip up the project and post it somewhere. However, if you have a copy of Reflector you can probably put it together yourself in about ten minutes.

Comments

Kishore Dharanikota said:

Hi,

I have a very similar situation. I am having a very hard time loading a schema dynamically. I tried to follow your above instructions. Looks like I am missing something small. It stopped me for almost a week now. The goal is as following:

1. I have my flat file schema built into one assembly.
2. From another custom pipe line component assembly, I am trying to load the flat file schema at run time. ( To be more specific I get a SOAP request to my pipeline and I have to locate flat files specified in SOAP message and load the flat files (there could be many) dynamically and apply flat file schema to map them).
I wrote a custom wrapper to flat file disassembler. For some reason I get the COM exception which does not tell me much.

Message = "80004005: Error HRESULT E_FAIL has been returned from a call to a COM component."

I tried multiple ways, and I get the above error code in all the cases:

Case (1):
Assembly assembly = Assembly.LoadFile(@"D:\BTSProjects\..\bin\Development\XXX.Schemas.dll");
Type type = assembly.GetType("XYZ.ABC_FF");
PropertyInfo schemaInfo = type.GetProperty("Schema");
object instance = assembly.CreateInstance(type.FullName);
SchemaWithNone xmlSchema = (SchemaWithNone)schemaInfo.GetValue(instance, null);
return xmlSchema;

... I don't know how to load XmlSchema into SchemaWithNone ?

Case (2):
SchemaWithNone schemaWithNone = new SchemaWithNone("http://XYZ.ABC_FF");
schemaWithNone.AssemblyName = "XXX.Schemas";
schemaWithNone.DocSpecName = "http://XYZ.ABC_FF";
schemaWithNone.RootName = "Body";
schemaWithNone.TargetNamespace = "http://XYZ.ABC_FF";
return schemaWithNone;

I don't know what I am missing here. Kindly help me out.

Thanks alot.
Kishore
(kishoredharanikota@yahoo.com)
# March 8, 2006 1:52 PM

Sujesh said:

Can you send me the project file to skodoth@apl.co.nz
# May 21, 2006 11:27 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)