Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Adres Üst Bilgileri örneği, istemcilerin Windows Communication Foundation (WCF) kullanarak bir hizmete nasıl başvuru parametreleri geçirebileceğini gösterir.
Uyarı
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
WS-Addressing belirtimi, belirli bir Web hizmeti uç noktasını ele almak için bir uç nokta başvurusu kavramını tanımlar. WCF'de uç nokta başvuruları sınıfı kullanılarak EndpointAddress
modellenir; EndpointAddress
sınıfın Address alanının ServiceEndpoint
türüdür.
Uç nokta başvuru modelinin bir parçası, her başvurunun ek tanımlayıcı bilgiler ekleyen bazı başvuru parametreleri taşıyabilmesidir. WCF'de bu başvuru parametreleri sınıfın AddressHeader
örnekleri olarak modellenir.
Bu örnekte istemci, istemci uç noktasının EndpointAddress
başvuru parametresini ekler. Hizmet bu başvuru parametresini arar ve değerini "Hello" hizmet işleminin mantığında kullanır.
Müşteri
İstemcinin bir başvuru parametresi gönderebilmesi için, AddressHeader
öğesinin EndpointAddress
kısmına bir ServiceEndpoint
eklemesi gerekir.
EndpointAddress
sınıfı değişmez olduğundan, bir uç nokta adresini değiştirmek için EndpointAddressBuilder
sınıfı kullanılmalıdır. Aşağıdaki kod, iletisinin bir parçası olarak bir başvuru parametresi göndermek için istemciyi başlatır.
HelloClient client = new HelloClient();
EndpointAddressBuilder builder =
new EndpointAddressBuilder(client.Endpoint.Address);
AddressHeader header =
AddressHeader.CreateAddressHeader(IDName, IDNamespace, "John");
builder.Headers.Add(header);
client.Endpoint.Address = builder.ToEndpointAddress();
Kod, özgün EndpointAddressBuilder
değerini ilk değer olarak kullanarak bir EndpointAddress
oluşturur. Ardından, yeni oluşturulan bir adres başlığı ekler; CreateAddressHeader
fonksiyon çağrısı, belirli bir isim, ad alanı ve değere sahip bir başlık oluşturur. Burada değer "John" şeklindedir. Üst bilgi oluşturucuya eklendikten sonra, ToEndpointAddress()
yöntemi değiştirilebilir oluşturucuyu sabit bir uç nokta adresine dönüştürür, bu adres istemci uç noktasının Adres alanına yeniden atanır.
Artık istemci Console.WriteLine(client.Hello());
çağırdığında hizmet, istemcinin sonuçta elde edilen çıktısında görüldüğü üzere, bu adres parametresinin değerini alabilir.
Hello, John
Sunucu
Hizmet işleminin Hello()
uygulanması, gelen iletideki üst bilgilerin değerlerini incelemek için geçerli OperationContext
değerini kullanır.
string id = null;
// look at headers on incoming message
for (int i = 0;
i < OperationContext.Current.IncomingMessageHeaders.Count;
++i)
{
MessageHeaderInfo h = OperationContext.Current.IncomingMessageHeaders[i];
// for any reference parameters with the correct name & namespace
if (h.IsReferenceParameter &&
h.Name == IDName &&
h.Namespace == IDNamespace)
{
// read the value of that header
XmlReader xr = OperationContext.Current.IncomingMessageHeaders.GetReaderAtHeader(i);
id = xr.ReadElementContentAsString();
}
}
return "Hello, " + id;
Kod, gelen iletideki tüm üst bilgileri yineler ve belirli bir ada sahip başvuru parametreleri olan üst bilgileri arar. Parametresi bulunduğunda, parametresinin değerini okur ve "id" değişkeninde depolar.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.
Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.