Search code examples
c#.netcom+

How do I consume a COM+ local server from C#?


I have a web application from a company that has gone out of business. We're looking to extend the web app a bit with some asp.net functionality. The web app was written as an ISAPI application in Delphi, and uses COM+ to talk to the SQL Server and handles things like session management and authentication.

So, in order to get the current user and other details, I have to use the undocument COM+ components. I was able to dig out the type library and auto generated IDL, but at this point i'm lost in creating a .NET proxy class for this.

Is there a way to autogenerate the .net COM+ proxy either from the .dll itself (extracting the typelib info) or from the IDL?

Note: These seem to be simple COM style objects hosted in COM+ servers, no subscriptions or transaction monitoring..


Solution

  • You could use tlbimp.exe to generate C# proxy classes from your COM library.

    tlbimp.exe myTest.tlb /out:myTest.dll
    

    If you don't have the tlb it works also with COM dlls. Once the COM wrapper assembly generated you can reference it in your project and use the types inside as you would any other .NET class.

    Possible location of tlbimp.exe : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\TlbImp.exe or use the Visual Studio Command Prompt.