Как написать службу JSON Enabled WCF для серверной части в asp.net с помощью c # - PullRequest
1 голос
/ 12 мая 2011

У меня есть клиент в Android и iphone ... Мне нужно написать серверную службу JSON с поддержкой JSON на c #. Как создать службу WCF с поддержкой JSON?

Ответы [ 3 ]

3 голосов
/ 12 мая 2011

нет особой разницы в написании материалов с поддержкой JSON по сравнению со стандартным WCF.Я предполагаю, что вы хотите REST API (мои службы WCF для Android работали REST), что означает, что ваши вызовы являются запросами GET, а не сообщениями HTTP, с использованием URL в качестве способа передачи параметров:

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

, где "en" и "videos" - это параметры, которые вы хотите использовать в своем 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, передав первый параметр в качестве параметра language , а параметр category будет равен второму:

например: http://yourdomain/yourservice.svc/categories/it/bob

будет вызывать этот метод, передавая "it" как язык и "bob" как категорию.

Возвращаемый объект - это просто стандартный datacontract, если вы хотите управлять форматом, просто используйтеАтрибуты DataContract + DataMember (имеют именованные параметры, такие как имя, пространство имен, порядок и т. Д.).

Затем последняя часть заключается в правильной настройке службы, в данном случае

a) определяет поведение службы webHttp.:

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

и b) определить вашу конечную точку с помощью webHttpBinding (и с использованием поведения конечной точки, определенного выше: смотрите, мы устанавливаем поведение_конфигурации)= "сеть"):

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

и это в основном все ...

0 голосов
/ 12 мая 2011

Я считаю, что это полезно при работе над аналогичным проектом - http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

0 голосов
/ 12 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...