如何从C#使用COM +本地服务器?

时间:2010-04-11 18:56:33

标签: c# .net com+

我有一家公司的网络应用程序已停业。我们希望通过一些asp.net功能扩展Web应用程序。 Web应用程序在Delphi中编写为ISAPI应用程序,并使用COM +与SQL Server通信并处理会话管理和身份验证等事项。

因此,为了获得当前用户和其他细节,我必须使用无证件的COM +组件。我能够挖掘出类型库和自动生成的IDL,但是在这一点上我为此创建了一个.NET代理类。

有没有办法从.dll本身(提取类型库信息)或从IDL自动生成.net COM +代理?

注意:这些似乎是COM +服务器中托管的简单COM样式对象,没有订阅或事务监视。

3 个答案:

答案 0 :(得分:3)

您可以使用tlbimp.exe从COM库生成C#代理类。

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

如果您没有tlb,它也适用于COM dlls。生成COM包装程序集后,您可以在项目中引用它,并像使用任何其他.NET类一样使用内部类型。

tlbimp.exe的可能位置:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\TlbImp.exe或使用Visual Studio命令提示符。

答案 1 :(得分:1)

在类型库上运行Tlbimp.exe以为其生成.NET互操作程序集。

答案 2 :(得分:0)

您是否尝试过访问项目中的引用,右键单击,添加引用,然后浏览到dll。我认为visual studio会为你生成Runtime Callable Wrapper。