LINQ to JSON в клиентском профиле.net 4.0

Как бы я мог использовать LINQ to JSON в.net 4 Client Profile в C#. Я хотел бы запросить определенные ответы json, как показано в сообщении блога msdn, без необходимости писать контракт (datacontract, servicecontract и т. Д.). Мне действительно нужно только запросить (прочитать) ответ, мне не нужно изменять ответ json. (Также будет ли дата-контракт быстрее, чем LINQ to JSON?)

В качестве альтернативы я мог бы использовать XML или полную среду.net 4, но я надеюсь, что этого можно избежать. Я могу использовать внешние библиотеки, если это лучше, чем установка всей платформы.

2 ответа

Решение

JSON.net довольно популярен и, похоже, вам нужен.

Если ваш сервис используется клиентами Ajax (jQuery), вы получите наилучшую производительность с помощью JSON.

Еще одна рекомендация; чтобы избавиться от той же политики домена, я рекомендую вам включить функцию crossDomainScriptAccessEnabled:

    <webHttpBinding>
      <binding name="myHttpBinding" crossDomainScriptAccessEnabled="true" />
    </webHttpBinding>

Относительно DataContract; в вашем сценарии DataContract на самом деле не нужен.

Пример кода:

  • Ваш сервис:

    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class BlogService {
    
         [OperationContract]
         [WebGet(ResponseFormat = WebMessageFormat.Json)]
         public List<Article> GetBlogArticles()
         {
             return Article.GetDummyArticles.ToList();
         }
    
    }
    
  • Класс статьи (отрывок):

    public class Article    {
    
         public string Title { get; set; }
         public string Body { get; set; }
    
         public static IEnumerable<Article> GetDummyArticles() {
             yield return new Article { Title = "Article 1", Body = "sdlkfjsdlkfjskl" };
             yield return new Article { Title = "Article 2", Body = "sfsfsdfd23434wfdfsfdfkfjskl" };
         }
      }
    

Для вашего сценария я на самом деле не могу найти причину для использования какой-либо (сторонней) библиотеки, так как WCF4 уже содержит встроенную поддержку JSON с или без Padding.

Другие вопросы по тегам