0

.NETアセンブリにCOM呼び出し可能ラッパーがあります。一部のメソッドはストリーム(System.IO.Stream)を使用します。入力としてSystem.IO.Streamを受け入れるか、System.IO.Streamを返します。

COM環境からこれらのメソッドの1つであるClassicASPを呼び出したいと思います。

ADODB.Streamを使用して相互運用を取得する可能性はありますか?つまり、ADODB.StreamのインスタンスであるSystem.IO.Streamの代わりに、COMラッパーのメソッドを呼び出して取得したいと思います。

これは自動的に発生しますか?


そうでない場合は、.NETコードを作成して作成できますか?もしそうなら、どのように?これを行うことを想像します。家の.NET側で、ADODB.StreamでCreateInstanceを呼び出し、既存のSystem.IO.Streamをラップしてから、ADODB.StreamのインスタンスをCOM呼び出し元に返します。これは可能ですか?それは機能しますか?

4

1 に答える 1

2

これらは 2 つの異なるオブジェクトです。確かに、それらは同じインターフェースを持っていますが、互いにキャストすることはできません。

データをコピーする場合は、IStream インターフェイスを使用して、あるストリームから読み取ってから別のストリームに書き込むコードを作成できます (バッファに読み取ってから、データがなくなるまで他のストリームに書き込む)。または、ADODB.Stream への呼び出しを転送することにより、ADODB.Stream をデータ ストアとして使用する System.IO.Stream からクラスを作成できます。

于 2009-10-28T01:56:55.130 に答える