首页 新闻 赞助 找找看

怎么把FileStream读取的流,赋值给Stream

0
悬赏园豆:20 [待解决问题]

最近在做亚马逊的接口对接

亚马逊上传数据有个参数request.FeedContent,这个需要Stream

但是用FileStream读取得到的流直接赋值给Stream报错

代码如下

问题补充:

[MarketplaceWebServiceStream(StreamType = StreamType.REQUEST_STREAM)]
public Stream FeedContent
{
get { return this.feedContentField ; }
set { this.feedContentField= value; }
}

 

它里面的stream刚好是System.IO.Stream

寒空孤鹰的主页 寒空孤鹰 | 初学一级 | 园豆:182
提问于:2014-10-22 18:00
< >
分享
所有回答(4)
0

为什么会这样呢?FileStream是Stream的子类之一,你确认下你的问题,是否FeedContent的Stream不是.net的标准Stream?

519740105 | 园豆:5810 (大侠五级) | 2014-10-22 19:20

[MarketplaceWebServiceStream(StreamType = StreamType.REQUEST_STREAM)]
public Stream FeedContent
{
get { return this.feedContentField ; }
set { this.feedContentField= value; }
}

 

它里面的stream刚好是System.IO.Stream

支持(0) 反对(0) 寒空孤鹰 | 园豆:182 (初学一级) | 2014-10-23 09:56

@寒空孤鹰: 

            System.IO.FileStream fs = null;
            System.IO.Stream s = fs;

这段代码是能编译通过的,FileStream直接派生自Stream

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-10-23 10:18
1

FileStream不能直接赋值给Stream。1、将FileStream流转成Byte[];2、把Byte[]专成Stream。

gltide | 园豆:403 (菜鸟二级) | 2014-10-22 22:08
0

试试FileStream.CopyTo()

参考博文:上传文件就这么简单:Request.InputStream to FileStream

dudu | 园豆:31075 (高人七级) | 2014-10-23 10:04
0

不要纠结向上转换出错的问题上,你认真想想是不是属性FeedContent的特性[MarketplaceWebServiceStream(StreamType = StreamType.REQUEST_STREAM)],对赋值有要求。

心梦缘 | 园豆:314 (菜鸟二级) | 2014-11-08 16:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册