有没有办法将字节数组转换为 ADODB.Stream?

Is there a way to convert byte array to ADODB.Stream?

我正在使用旧的 Resume 解析器系统,该系统使用一种方法 ProcessStream(ref Stream oStream),其中 Stream 的类型为 ADODB.Stream。我有一个字节数组,我想将其转换为该流,但我做不到。 我尝试将字节数组转换为 IO Stream,然后将其转换为 ADODB.Stream,但这也不起作用。

如有任何帮助,我们将不胜感激。谢谢!

有两种可能的解决方案。

方法 1 将数据从文件加载到 ADODB.Stream

[TestMethod]
public void Test1()
{
    String someString = "Sample string";
    Byte[] bytes = Encoding.ASCII.GetBytes(someString);

    File.WriteAllBytes("D:\test.txt", bytes);

    ADODB.Stream stream = new ADODB.Stream();
    stream.Open();
    stream.Type = ADODB.StreamTypeEnum.adTypeBinary;
    stream.LoadFromFile("D:\test.txt");

    Byte[] readData = stream.Read(someString.Length);

    CollectionAssert.AreEqual(bytes, readData);
}

方法 2 从内存中的字节数组将数据加载到 ADODB.Stream

[TestMethod]
public void Test2()
{
    String someString = "Sample string";
    Byte[] bytes = Encoding.ASCII.GetBytes(someString);

    ADODB.Stream stream = new ADODB.Stream();
    stream.Open();
    stream.Type = ADODB.StreamTypeEnum.adTypeBinary;
    stream.Write(bytes);

    stream.Position = 0;

    Byte[] readData = stream.Read(someString.Length);

    CollectionAssert.AreEqual(bytes, readData);
}

在每个方法的末尾,我检查了 readData 变量,它包含与原始 'bytes' 字节数组相同的数据。