此 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/