WCF不支持多维数组
2014-11-21 15:03
141 查看
其实用类数组好一些:http://blog.csdn.net/wr6521941/article/details/41479489
使用WCF并且out二维数组的时候,出现错误
查询百度后得知wcf无法将我out的数组序列化。需手动序列化
因此,添加序列化代码(我使用的是序列化后返回byte[]数组)
调用时,反序列化
总结序列化反序列化代码
使用WCF并且out二维数组的时候,出现错误
查询百度后得知wcf无法将我out的数组序列化。需手动序列化
因此,添加序列化代码(我使用的是序列化后返回byte[]数组)
public string ShowFlightNo(string weixin_id, out byte[] a) { string[,] arr = new string[0, 0]; a=new byte[]{0}; DataSet ds = m.GetFlightNo2(str); arr = new string[ds.Tables[0].Rows.Count,3]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dr = ds.Tables[0].Rows[i]; arr[i, 0] = Convert.ToString(dr["flight_id"]); arr[i, 1] = Convert.ToString(dr["std"]); arr[i, 2] = Convert.ToString(dr["flight_no"]); } using (MemoryStream ms = new MemoryStream()) { IFormatter f = new BinaryFormatter(); f.Serialize(ms, arr); ms.ToArray(); a=ms.ToArray(); } All = "可订餐航班:"; //----------------------- } return All; }
调用时,反序列化
string info = ""; string a,b,c; IFormatter fs = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(bb)) { string[,] obj = fs.Deserialize(ms) as string[,]; for (int i = 0; i < obj.GetLength(0); i++) { a=obj[i, 0].ToString(); b=obj[i, 1].ToString(); c=obj[i, 2].ToString(); info += i + "," + a + "," + b + "," + c + ";"; } Label5.Text = info.ToString(); }
总结序列化反序列化代码
using (MemoryStream ms = new MemoryStream()) { IFormatter f = new BinaryFormatter(); f.Serialize(ms, arr); ms.ToArray(); }
IFormatter fs = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(a.ToArray())) { var obj = fs.Deserialize(ms); }
相关文章推荐
- WCF传递多维数组的问题
- extjs 多维数组支持
- 使用 ASP.NET 创建 XML Web services 不支持多维数组
- 检车数组内number类型的小数位数(支持多维数组)
- 解析将多维数组转换为支持curl提交的一维数组格式
- 解析将多维数组转换为支持curl提交的一维数组格式
- javascript中实际上是不支持多维数组
- jqurey 获取 form 表单中所有数据,支持多维数组
- 一次作业题目-----话单计费(C-多维数组)
- 关注 .NET Compact Framework V3.0 将对 WCF 的支持
- 利用递归把多维数组转为一维数组的函数
- 一个动态多维数组的实现
- WCF在安全性方面的支持(1):一些概念
- 多维数组
- 多维数组的指针做函数参数
- 利用递归把多维数组转为一维数组的函数
- 多维数组
- 多维数组的指针变量
- C程序设计基础之多维数组的指针变量
- SQL SERVER 2000 存储过程不支持数组的解决方法!