相关疑难解决方法(0)

在配置文件中应用[WebInvoke(ResponseFormat = WebMessageFormat.Json)]

我正在编写我所指的POJ(Plain Old JSON)WCF Web服务 - 一个接收和发出标准JSON而没有ASP.NET Ajax喜欢添加到它的垃圾的服务.

似乎有三个步骤来实现这一目标:

  1. 在端点的标记中将"enableWebScript"更改为"webHttp"
  2. 使用[WebInvoke(ResponseFormat = WebMessageFormat.Json)]装饰方法
  3. 在服务合同中添加[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]的咒语

这对我来说都很好 - 我可以传入并且返回了很好的JSON.

如果我删除了WebInvoke属性,那么我会返回XML,因此它肯定正在做它应该做的事情.但令我感到奇怪的是,指定JSON输出的选项出现在这里,而不是在配置文件中.假设我想将我的方法公开为XML端点 - 我该怎么做?目前我能看到的唯一方法是使用第二种方法完成相同的操作,但没有指定WebMethodFormat.Json.然后冲洗并重复我服务中的每种方法?呸.

指定输出应该在属性中被序列化为JSON似乎完全违背了WCF的原理,其中实现的服务是一种传输和编码不可知的方式,留下了如何将数据移动到周围的令人讨厌的细节.配置文件.

有没有更好的方式做我想做的事情?或者我们是否坚持这个尴尬的属性?或者我不够深入了解WCF?

wcf json

6
推荐指数
1
解决办法
3541
查看次数

标签 统计

json ×1

wcf ×1