Ukázka třídy XmlReader
XmlReader ukázka ukazuje zpracování textu zprávy pomocí XmlReader. Ukázka je založená na začínáme, která implementuje službu kalkulačky. Byla přidána další operace služby, Sum
která přijímá zprávu obsahující pole hodnot, které se mají sečíst. Služba přečte zprávu pomocí funkce XmlReader.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Rozhraní kalkulačky obsahuje operaci služby s názvem Sum
, která přijímá Message parametr, jak je znázorněno v následujícím vzorovém kódu.
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
[OperationContract]
Message Sum(Message message);
}
Klient přistupuje Sum
nejprve vytvořením pole celočíselné hodnoty, následným vytvořením zprávy z pole a následným voláním Sum
metody pomocí vytvořené zprávy, jak je znázorněno v následujícím vzorovém kódu.
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);
}
Implementace operace Sum
služby ve službě přistupuje k textu zprávy pomocí XmlReader objektu, který iteruje hodnotami, které se mají sečíst. Volá se GetReaderAtBodyContents metoda pro přístup k textu zprávy, jak je znázorněno v následujícím vzorovém kódu.
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;
}
Při spuštění ukázky se požadavky a odpovědi operace zobrazí v okně konzoly klienta. Stisknutím klávesy ENTER v okně klienta klienta ukončete klienta.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Sum(1,2,3,4,5) = 15
Press <ENTER> to terminate client.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.