如何在wcf中实现泛型类型返回?求高手回答

Truly 2012-02-13 05:28:02
想通过传入对象名返回对应对象集合或对象,

我思考的如下伪代码:

[OperationContract]

[WebInvoke]

List<T> GetALL(string tablename);


当访问abc.svc/Customer 返回 List<Customer>

当访问abc.svc/Order 返回 List<Order>


这个思路有无问题,是否可行?或者有其他方案吗

就是根据不同的传入参数返回不同的数据



如果使用
DataTable GetALL(string tablename);
就很容易实现,但是目标客户端为java,所以不能使用DataTable类型,高分求教解决思路,最好能有实例代码,可以补加分数!
...全文
405 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonwrite 2012-04-12
  • 打赏
  • 举报
回复
泛型是.net平台的 datatable也一样
除非是wcf对wcf

不然不要用泛型罗

我觉得
油锅中的蛤蟆 2012-03-26
  • 打赏
  • 举报
回复
传入对象名返回对应对象集合或对象,肯定可以。
怎么楼主的不能返回吗
changjiangzhibin 2012-03-12
  • 打赏
  • 举报
回复
推荐使用XML格式,规则自己定义,解析时亦依规则即可

这种方案比较通用。

也可考虑压缩后再解压或传递二进制
bbaxx101 2012-03-12
  • 打赏
  • 举报
回复
无法定义T类型 ,只能是OBJECT加 [ServiceKnownType("",typeof(类型))]来实现约束
Lugyedo 2012-02-14
  • 打赏
  • 举报
回复
返回XML格式的数据,java客户端就可以调用了,XML是标准哈
moonwrite 2012-02-14
  • 打赏
  • 举报
回复
List<T>.ToArray()
moonwrite 2012-02-14
  • 打赏
  • 举报
回复
Customer[]
用数组把
Truly 2012-02-14
  • 打赏
  • 举报
回复
谢谢楼上,不过此文代码我试了一下,运行不起来,提示终结点配置有误,看原文下面的评论也是很难实际应用的。
Truly 2012-02-14
  • 打赏
  • 举报
回复
你是指:
[OperationContract]
string GetDataSetXML();



public string GetDataSetXML()
{
DataSet ds = new DataSet();
// fill ds
...
return ds.GetXml();
}

是这样吗?

另外“DataTable实际上也是xml类型的”我不是很懂,能细说一下吗
Lugyedo 2012-02-14
  • 打赏
  • 举报
回复
DataTable实际上也是xml类型的

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧