此 Web 服务需要此 xml 文件:

request.FeedContent = File.Open("test.xml", FileMode.Open, FileAccess.Read);

我已经在流中拥有该文件,但此语句挂起:
stream.Position = 0;
request.FeedContent = stream;

流是标准的 .net MemoryStream

我对流执行什么操作才能使其与 File.Open 相同?

谢谢!!

看看这个(api定义):
    /// <summary>
    /// Gets and sets the FeedContent property.
    /// </summary>
    //[XmlElementAttribute(ElementName = "FeedContent")]
    public Stream FeedContent
    {
        get { return this.feedContentField ; }
        set { this.feedContentField= value; }
    }

最佳答案

我怀疑 Web 服务是否真的需要流。它到底如何代表那个?您确定它不只是期望内容为字节数组吗?
File.Open 只返回一个 FileStream - 如果 stream 已经是一个 FileStream 那么两者之间没有区别。它可能需要一个 FileStream 而你只有一个 Stream 。如果是这种情况并且它确实不是来自文件,则您可能必须将其写入文件并为此打开 FileStream。然后向 Web 服务开发人员提示他们的 API 很奇怪。

编辑:如果它只是期待 Stream ,你应该没问题。你说它挂了 - 你有没有试过调试并查看它到底卡在哪里?它是否出于某种原因试图读取更多数据?

关于C# File.Open 和 Stream 等效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/870594/

10-15 17:00