WCF传输JSON问题(急)

LIZHIztt 2017-07-01 12:46:31
接口定义

[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "/Send")]
[Description("信息发布")]
Model.Message.Task Send(string UserName, string Password, object Data)

接口实现
public Model.Message.Task Send(string UserName, string Password, object Data)
{
//根据用户名和密码解析Data(Data是JSON字符串,不同的用户名和密码Data内容不同)

}

客户端提交示例1

{
"UserName":"test",
"Password":"123456",
"Data":{"a":"1"},
}

客户端提交示例2

{
"UserName":"test",
"Password":"123456",
"Data":{"a":"1","b":"2"},
}

客户端提交示例3
{
"UserName":"test",
"Password":"123456",
"Data":{"c":"3"},
}
.........


WCF定义接口如何指定一个参数为匿名类型,使用Object类型好像不行,最终想要达到的目的是

public Model.Message.Task Send(string UserName, string Password, object Data)
{
//例如示例1,Data = "Data":{"a":"1"};
//例如示例2,Data = "Data":{"a":"1","b":"2"};
//例如示例3,Data = "Data":{"c":"3"}
然后根据用户名和密码的不同使用不同的对象来序列化Data
}

...全文
254 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_peng_yl 2017-07-04
  • 打赏
  • 举报
回复
object Data 不是好像,是肯定不行,如果object行了,那还要什么序列化 你只能用已经序列化好的类, 自己定义或者用系统的自带的 看你的样子,肯定要自定义序列化好的类, 反正我不这样做,我直接用DataTable 来参为参数 因为DataTable就是已经序列化好的, 至于到了wcf这块,我也没再序列化,直接用DataTable就是了 你要是不习惯这样用,那只能自定义序列化类吧 当然你也可以用像Dictionary,List等等,只是传过去之后是个数组
LIZHIztt 2017-07-03
  • 打赏
  • 举报
回复
顶一下,还没有解决
LIZHIztt 2017-07-01
  • 打赏
  • 举报
回复
{ "UserName": "test", "Password": "123456", "Data": "{ \"a\": \"1\", \"b\": \"2\" }" } 这样写起来总感觉有些别扭
LIZHIztt 2017-07-01
  • 打赏
  • 举报
回复
在json数据中中包含json字符串?
exception92 2017-07-01
  • 打赏
  • 举报
回复
接口如何指定一个参数为匿名类型 -》为什么要定义为匿名类型,直接传个json字符串,然后解析成对象就可以了吧。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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