如何使用 c# 为服务器端编写 JSON 启用 JSON 的 WCF 服务 asp.net

本文关键字:JSON 启用 WCF 服务 net asp 何使用 服务器端 | 更新日期: 2023-09-27 17:56:18

我有一个安卓和苹果手机的客户端...我需要使用 c# 编写服务器端启用 JSON 的 WCF 服务。如何创建启用 JSON 的 WCF 服务?

如何使用 c# 为服务器端编写 JSON 启用 JSON 的 WCF 服务 asp.net

编写

启用JSON的东西与标准WCF没有太大区别。我猜你想要一个 REST API(我的 WCF 服务为 android 工作 REST),这意味着你的调用是 GET 请求而不是 HTTP 帖子,使用 URL 作为传递参数的一种方式:

http://example.rest.com/myservice/categories/en/videos

其中"en"和"video"是您要在URL上使用的参数。

WCF 在接口上工作,接口定义服务协定。对于 REST 服务,您可以指定 JSON/URL 格式,如下所示:

[ServiceContract()] // Required: this is a WCF endpoint
public interface IMyService
{
     [OperationContract()] // Required so the method actually is included
     [WebGet(
          ResponseFormat = WebMessageFormat.Json, // Return results as JSON
          UriTemplate = "/categories/{language}/{category}")]
     CategoryResponse Find(string language, string category);
}
URI

模板类别构成了您的 URI 结构,表示当有人访问您的服务时,用"类别"然后用斜杠分隔的两个值,它将调用此 Find 方法,将第一个参数作为语言参数传递,类别参数将等于第二个:

例如:http://yourdomain/yourservice.svc/categories/it/bob

调用此方法,将"it"作为语言传递,将"bob"作为类别传递。

返回对象只是一个标准的数据协定,如果你想控制格式,只需使用 DataContract + DataMember 属性(具有命名参数,如名称、命名空间、顺序等)。

然后最后一部分只是正确配置您的服务,在这种情况下

a) 定义 webHttp 服务行为:

<behaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>          
        </behavior>        
      </endpointBehaviors>

b) 使用 webHttpBinding 定义您的端点(并使用上面定义的端点行为:请参阅我们设置 behaviorConfiguration = "web"):

    <services>     
          <service behaviorConfiguration="standard"
 name="Your.Implementing.ClassThatImplementsIMyService">
            <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
                      contract="Namespace.To.IMyService" />
          </service>
        </services>

基本上就是这样...

在这里找到

http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx

我发现这在处理类似项目时很有帮助 - http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/