LINQ to JSON в профиле клиента .net 4.0 - PullRequest
4 голосов
/ 02 июня 2011

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

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

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

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

1 голос
/ 02 июня 2011

Если ваша служба используется клиентами 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 сили без заполнения.

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