MessagePack ist ein effizientes binäres Serialisierungsformat. Sie können Daten unter mehreren Sprachen wie JSON austauschen. Aber es ist schneller und kleiner. Smallg vonzahlen werden in ein einzelnes Byte codiert, und typische kurze Saiten benötigen zusätzlich zu den Saiten selbst nur ein zusätzliches Byte.
Bietet Erweiterungsmethoden für system.net.http.httpclient und system.net.http.httpContent, die mithilfe von MessagePack eine automatische Serialisierung und Deserialisierung durchführen.
Dieses Paket hängt tatsächlich von Microsoft.Net.Http ab und erweitert den HttpClient mit MessagePack -Funktionen, die Sie wahrscheinlich mit einem erholsamen Dienst wie ASP.NET -Web -API sprechen müssen. Das Paket arbeitet im Namespace System.Net.Http und fügt einige praktische Erweiterungsmethoden zu HttpClient und HttpContent hinzu.
Also zum Beispiel:
using ( var client = new HttpClient ( ) )
{
var product = await client . GetFromMessagePackAsync < Product > ( "http://localhost/api/products/1" ) ;
}oder
using ( var client = new HttpClient ( ) )
{
var response = await _client . GetAsync ( "http://localhost/api/products/1" ) ;
response . EnsureSuccessStatusCode ( ) ;
var product = await response . Content . ReadFromMessagePackAsync < Product > ( ) ;
}oder
using ( var client = new HttpClient ( ) )
{
var request = new HttpRequestMessage ( HttpMethod . Post , "http://localhost/api/products/1" ) ;
request . Content = MessagePackContent . Create ( new Product ( ) ) ;
var response = await _client . SendAsync ( request ) ;
response . EnsureSuccessStatusCode ( ) ;
} Wenn Sie versucht haben, nur Microsoft.Net.Http zu verwenden, wäre die GetFromMessagePackAsync -Methode Ihnen nicht zur Verfügung, und Sie können die Inhalte nur als Rohdaten wie Bytes oder String lesen und die Serialisierung / De-Serialisierung selbst durchführen.
Sie erhalten auch Erweiterungsmethoden, um in das MessagePack -Format in den Dienst zu bringen / zu posten, ohne dass selbst erledigt werden muss:
await client . PutAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ;
await client . PostAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ; Dieses Paket fügt außerdem MessagePackMediaTypeFormatter -Klasse hinzu, um HttpClient -Anforderungen und Antworten zu formatieren:
using ( var client = new HttpClient ( ) )
{
var formatter = new MessagePackMediaTypeFormatter ( ) ;
var request = new SearchProductRequest { Name = 'iphone' , OrderBy = 'id' } ;
var content = new ObjectContent < SearchProductRequest > ( request , formatter ) ;
var response = await client . PostAsync ( "http://localhost/api/products:search" , content ) ;
var products = await response . Content . ReadAsAsync < Product [ ] > ( new [ ] { formatter } ) ;
}dotnet add package Byndyusoft.Net.Http.MessagePackUm einen Beitrag zu leisten, müssen Sie Ihre lokale Umgebung einrichten und Voraussetzungen sehen. Für den Beitrags- und Workflow -Leitfaden finden Sie den Lebenszyklus für Paketentwicklung.
Ein detaillierter Überblick über den Beitrag zum Beitrag finden Sie im Beitrag zur beitragenden Anleitung.
Stellen Sie sicher, dass Sie alle folgenden Voraussetzungen auf Ihrer Entwicklungsmaschine installiert haben:
srctests hinzu odermaster -Zweigstelle des Projekts