0

我在 .NET 程序集上有一个 COM 可调用包装器。一些方法使用流(System.IO.Stream):要么接受 System.IO.Stream 作为输入,要么返回 System.IO.Stream。

我想从 COM 环境中调用其中一种方法 - 经典 ASP。

是否有可能使用 ADODB.Stream 进行互操作?换句话说,我想调用 COM 包装器上的一个方法并返回,而不是 System.IO.Stream ,它是 ADODB.Stream 的一个实例。

这会自动发生吗?


如果没有,那么我可以构造 .NET 代码吗?如果是这样,怎么做?我想象这样做:在房子的 .NET 端,在 ADODB.Stream 上调用 CreateInstance,将其包装在现有的 System.IO.Stream 周围,然后将 ADODB.Stream 的实例返回给 COM 调用者。这可能吗?它会起作用吗?

4

1 回答 1

2

它们是两个不同的对象。当然,它们具有相同的界面,但您不能将一个转换为另一个。

如果要复制数据,您可以编写从一个读取然后写入另一个的代码,使用 IStream 接口(读取到缓冲区然后写入另一个流直到没有更多数据)。或者,您可以通过将调用转发到 ADODB.Stream 从 System.IO.Stream 创建一个使用 ADODB.Stream 作为数据存储的类。

于 2009-10-28T01:56:55.130 回答