L’exemple XmlReader présente le traitement d’un corps de message à l’aide de XmlReader. Cet exemple est basé sur la Prise en main, qui implémente un service de calculatrice. L'opération de service Sum a été ajoutée et accepte un message qui contient un tableau de valeurs à ajouter ensemble. Le service lit le message à l'aide de XmlReader.
Note
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique.
L'interface de calculatrice inclut une opération de service appelée Sum qui accepte un paramètre Message, tel qu'indiqué dans l'exemple de code suivant.
Le client accède à Sum en créant tout d'abord un tableau de valeurs entières, puis un message à partir du tableau, et en appelant ensuite la méthode Sum à l'aide du message créé, tel qu'indiqué dans l'exemple de code suivant.
CalculatorClient client = new CalculatorClient();
//...
// Call the Sum service operation.
int[] values = { 1, 2, 3, 4, 5 };
using (new OperationContextScope(client.InnerChannel))
{
Message request = Message.CreateMessage(OperationContext.Current.OutgoingMessageHeaders.MessageVersion, "http://Microsoft.ServiceModel.Samples/ICalculator/Sum", values);
Message reply = client.Sum(request);
int sum = reply.GetBody<int>();
Console.WriteLine("Sum(1,2,3,4,5) = {0}", sum);
}
Dans le service, l'implémentation de l'opération de service Sum accède au corps du message à l'aide d'un objet XmlReader pour parcourir les valeurs à additionner. La méthode GetReaderAtBodyContents est appelée pour accéder au corps du message, tel qu'indiqué dans l'exemple de code suivant.
public int Sum(Message message)
{
int sum = 0;
string text = "";
//The body of the message contains a list of numbers that are read
//directly using an XmlReader.
XmlReader body = message.GetReaderAtBodyContents ();
while (body.Read())
{
text = body.ReadString().Trim();
if (text.Length>0)
{
sum += Convert.ToInt32(text);
}
}
body.Close();
Message response = Message.CreateMessage(
"http://Microsoft.ServiceModel.Samples/ICalculator/SumResponse",
sum);
return response;
}
Lorsque vous exécutez l'exemple, les demandes et réponses de l'opération s'affichent dans la fenêtre de console du client. Appuyez sur Entrée dans la fenêtre du client pour l'arrêter.
Utilisez un service web REST à l’aide de HttpClient pour effectuer des opérations CRUD de base. Vous détecterez quand votre appareil est connecté à Internet pour fournir une bonne expérience utilisateur et tirer parti des piles de mise en réseau natives afin d’obtenir des performances optimales.