web service传递stream二进制对象

今天遇到的问题,在园子里找到了解决方案:http://www.cnblogs.com/andy65007/archive/2009/11/24/1609584.html

Web Service是一种跨平台的分布式解决方案,使用标准XML格式的SOAP消息传递信息,统一了不同平台的通讯协议,便于我们实现异构系统的交互;但使用统一的XML格式带来的问题就是此协议只支持基本的数据类型, 或包装了基本数据类型的简单对象,我们无法在.net中使用web service直接传递.net对象或二进制流,只有把对象或二进制流序列化为字符串才可以在web service中传递。有2种使用web service方式传递Stream对象的方法:

1.转为字符串(范例):

staticvoid Main(string[] args)
{
    FileStream stream
=new FileStream("C:\\test.xls", FileMode.Open);
   
byte[] buff =newbyte[stream.Length];
    stream.Read(buff,
0, buff.Length);
   
string strParam = Convert.ToBase64String(buff);

   
//Below invoke web service
    MyWebService service =new MyWebService();
    service.SendFile(strParam);
}

2.

使用Microsoft的WSE(Web Services Enhancements)扩展web service:

 

posted on 2012-10-11 16:19  Gcam  阅读(363)  评论(0编辑  收藏  举报

导航