【问题标题】:Is there any possibility for Interop across a COM/.NET boundary between ADODB.Stream and System.IO.Stream?是否有跨 ADODB.Stream 和 System.IO.Stream 之间的 COM/.NET 边界进行互操作的可能性?
【发布时间】:2010-12-10 17:07:38
【问题描述】:

我在 .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 调用者。这可能吗?它会起作用吗?

【问题讨论】:

    标签: .net com interop stream adodb


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 2011-08-21
      • 2011-06-15
      • 1970-01-01
      • 2012-03-31
      • 2010-12-24
      相关资源
      最近更新 更多