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