{"id":8535,"date":"2010-12-17T00:23:21","date_gmt":"2010-12-16T22:23:21","guid":{"rendered":"https:\/\/fatihboy.com\/post\/bir-wcf-hizmetine-istemci-olusturma"},"modified":"2010-12-17T00:23:21","modified_gmt":"2010-12-16T22:23:21","slug":"bir-wcf-hizmetine-istemci-olusturma","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/","title":{"rendered":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma"},"content":{"rendered":"<div class=\"wp-block-image\"><figure class=\"alignleft\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\" alt=\"Hand drawing chart in whiteboard\"\/><\/figure><\/div>\n\n\n\n<p>&nbsp;&nbsp; Windows Communication Foundation&#8217;\u0131n detaylar\u0131n\u0131 sizlerle payla\u015fmay\u0131 hedefledi\u011fim makale serisinde daha \u00f6nce sizlerle bir WCF hizmetini gerek <a href=\"\/en\/?p=8503\" target=\"_blank\" rel=\"noopener noreferrer\">app.config dosyas\u0131 \u00fczerinden<\/a> gerekse de <a href=\"\/en\/?p=8511\" target=\"_blank\" rel=\"noopener noreferrer\">programsal olarak<\/a> nas\u0131l olu\u015fturabilece\u011finizi payla\u015fm\u0131\u015ft\u0131m. Giri\u015f d\u00fczeyinde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz WCF hizmeti olu\u015fturma konusunda ilerleyen makalelerde daha detayl\u0131 bilgiler payla\u015fmay\u0131 planlamakla birlikte, bu konudaki ileri tekniklere\/ detaylara ge\u00e7meden \u00f6nce isterseniz birlikte bir WCF hizmet istemcisini nas\u0131l olu\u015fturabilece\u011fimizi g\u00f6relim.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Bir WCF hizmetine istemci olu\u015fturmada 3 temel y\u00f6ntem bulunmakta; komut sat\u0131r\u0131ndan service model meta veri hizmet arac\u0131n\u0131 kullanarak, Visual Studio i\u00e7erisinde yer alan sihirbazlar\u0131 kullanarak ya da uygulamam\u0131z i\u00e7erisinden programsal olarak. \u0130sterseniz bu 3 y\u00f6ntemin neler oldu\u011funu s\u0131ras\u0131yla g\u00f6relim:<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u0130lk y\u00f6ntemimiz olan <strong>service model meta veri hizmet arac\u0131n\u0131 (Svcutil.exe)<\/strong> komut sat\u0131r\u0131ndan kullanabilmenin en kolay yolu yeni bir <strong>Visual Studio Command Prompt<\/strong> oturumu ba\u015flatmakt\u0131r. Bilgisayar\u0131n\u0131za herhangi bir Visual Studio s\u00fcr\u00fcm\u00fcn\u00fc kurman\u0131zla birlikte ba\u015flat men\u00fcs\u00fcnde <em>Microsoft Visual Studio 2010 -&gt;&nbsp; Visual Studio Tools<\/em> klas\u00f6r\u00fc alt\u0131na yerle\u015fen Visual Studio Command Prompt ,asl\u0131nda Visual Studio ile birlikte gelen ara\u00e7lar\u0131 kullanmam\u0131z i\u00e7in gerekli MSDOS path ve de\u011fi\u015fken tan\u0131mlar\u0131n\u0131 yapan bir batch dosyas\u0131ndan farkl\u0131 bir \u015fey de\u011fildir; ama bu haliyle bile bizim i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131.<\/p>\n\n\n\n<p>&nbsp;&nbsp; <strong>Svcutil<\/strong> uygulamas\u0131, Microsoft taraf\u0131ndan geli\u015ftirilmi\u015f ve WCF hizmetince yay\u0131nlanan meta veriyi kullanarak otomatik olarak istemci olu\u015fturabilen bir konsol uygulamas\u0131d\u0131r. \u0130stemci kodunu otomatik \u00fcretebilmesi i\u00e7in gerekli bilgiyi alaca\u011f\u0131 bir meta verinin bulunmas\u0131 gerekti\u011fini d\u00fc\u015f\u00fcnecek olursak, hizmetimizin gerekli olan bu meta veriyi online ya da offline olarak bizlere sa\u011fl\u0131yor olmas\u0131 gerekli. Serinin ilk iki makalesini hat\u0131rlayacak olursan\u0131z bir WCF hizmetinin meta verisi iki \u015fekilde yay\u0131nlayabilmekteydik; meta veri de\u011fi\u015fim u\u00e7 noktas\u0131 (<em>Metadata Exchange, MEX endpoint<\/em>) ve servis meta veri davran\u0131\u015f\u0131 (<em>ServiceMetadataBehavior<\/em>). Svcutil uygulamas\u0131 her iki y\u00f6ntemi de destekleyerek tan\u0131mlamas\u0131 verilen WCF hizmetine ba\u011flanmay\u0131 sa\u011flayacak olan kodu otomatik olarak \u00fcretebilir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Makalemin geri kalan\u0131nda bu iki meta veri yay\u0131nlama y\u00f6nteminden en az birisinin WCF hizmetinizde aktif ya da meta verinizin wsdl\/xsd dosyalar\u0131 olarak yerel bilgisayar\u0131m\u0131zda ula\u015f\u0131labilir bir yerde oldu\u011funu varsay\u0131yorum.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Svcutil.exe &lt;hizmet Meta veri De\u011fi\u015fim (MEX) ya da HTTP GET adresi><\/pre>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131da en basit haliyle Svcutil arac\u0131n\u0131n komut sat\u0131r\u0131ndan nas\u0131l tetiklenebilece\u011fini g\u00f6rmektesiniz. Uygulamaya parametre olarak MEX adresi verilebilece\u011fi gibi http get y\u00f6ntemi ile payla\u015f\u0131lan meta verinin adresi de verilebilir. Bu bilgi uygulama taraf\u0131ndan kullan\u0131larak meta veri al\u0131n\u0131r ve meta veri ile belirtilen kontrata uygun bir istemci olu\u015fturulur. Svcutil uygulamas\u0131n\u0131 kullanarak otomatik olarak istemci \u00fcretebilmek i\u00e7in her zaman online olarak meta veriye ula\u015fmak zorunda de\u011filiz. G\u00fcvenlik nedeniyle meta veri eri\u015fiminin kapat\u0131ld\u0131\u011f\u0131 ya da kontrol\u00fcm\u00fcz\u00fcn d\u0131\u015f\u0131nda olan ve meta verisi yay\u0131nlanmam\u0131\u015f WCF hizmetlerinin kullan\u0131lmas\u0131 gerekti\u011fi senaryolar da d\u00fc\u015f\u00fcn\u00fclerek, ayn\u0131 i\u015flem \u00e7evrim d\u0131\u015f\u0131 olarak bilgisayar\u0131n\u0131zda bulunan web hizmeti tan\u0131m dili (<em>Web Services Description Language, WSDL<\/em>) ve xml \u015fema tan\u0131m dili (<em>XML Schema definition language, XSD<\/em>) dosyalar\u0131 kullan\u0131larak da yap\u0131labilmektedir. A\u015fa\u011f\u0131da bu \u015fekilde kod \u00fcretimine \u00f6rnek bir kullan\u0131m bulabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Svcutil.exe &lt;Bilgisayar\u0131n\u0131zda bulunan WSDL ve XSD dosyalar\u0131n\u0131n listesi><\/pre>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131daki iki y\u00f6ntemden senaryonuza uygun olan\u0131 kullanmam\u0131z sonras\u0131nda Svcutil uygulamas\u0131 WCF hizmetine ba\u011flanmak i\u00e7in kullanabilece\u011finiz bir istemciye ait kodlar\u0131n bulundu\u011fu bir kaynak dosyas\u0131 \u00fcretecektir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Svcutil uygulamas\u0131 yukar\u0131daki parametreler d\u0131\u015f\u0131nda kullan\u0131lacak olan programlama dili, assembly gibi \u00fcretilecek olan kaynak kod dosyas\u0131n\u0131 \u00f6zelle\u015ftirebilmeniz i\u00e7in farkl\u0131 parametreler de kabul etmektedir. Hatta kod \u00fcretirken mevcutta bulunan uygun s\u0131n\u0131flar\u0131m\u0131z\u0131 kullanmak isteyip istemeyece\u011fimizi dahi belirtebiliriz. Pek \u00e7ok parametreye sahip olan bu ara\u00e7 hakk\u0131nda MSDN sitesinde yer alan <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa347733.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">uygulama dok\u00fcmantasyonu<\/a> sizlere kullanabilece\u011finiz parametreler konusunda yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Ayn\u0131 bir WCF hizmetinde oldu\u011fu gibi, WCF istemcisinde de gerekli olan yap\u0131land\u0131rma bilgisi uygulama yap\u0131land\u0131rma dosyas\u0131nda (<em>app.config, web.config<\/em>) tutulabilmektedir. Bu dosyan\u0131n da otomatik olarak \u00fcretilmesini destekleyen svcutil uygulamas\u0131 a\u015fa\u011f\u0131daki \u015fekildeki bir kullan\u0131m sonras\u0131nda bize gerekli olan yap\u0131land\u0131rma dosyas\u0131n\u0131 \u00fcretecektir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Svcutil.exe &lt;dosya1 [,dosya2]><\/pre>\n\n\n\n<p>&nbsp;&nbsp; A\u015fa\u011f\u0131da, \u00f6nceki makalelerimde sizlerle payla\u015fm\u0131\u015f oldu\u011fum \u00f6rnek WCF hizmetine ba\u011flanmakta kullan\u0131lacak olan ve svcutil uygulamas\u0131nca otomatik \u00fcretilmi\u015f olan OrnekHizmetClient s\u0131n\u0131f\u0131 ile bu s\u0131n\u0131f\u0131 \u00fcretmekte kulland\u0131\u011f\u0131m komut sat\u0131r\u0131n\u0131 bulabilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">svcutil http:\/\/localhost:1234\/WCFOrnekleri<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/------------------------------------------------------------------------------\n\/\/ &lt;auto-generated>\n\/\/     This code was generated by a tool.\n\/\/     Runtime Version:4.0.30319.1\n\/\/\n\/\/     Changes to this file may cause incorrect behavior and will be lost if\n\/\/     the code is regenerated.\n\/\/ &lt;\/auto-generated>\n\/\/------------------------------------------------------------------------------\n\n[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.ServiceModel\", \"4.0.0.0\")]\n[System.ServiceModel.ServiceContractAttribute(Namespace=\"https:\/\/fatihboy.com\/WCFOrnekleri\", ConfigurationName=\"IOrnekHizmet\")]\npublic interface IOrnekHizmet\n{\n\n    [System.ServiceModel.OperationContractAttribute(Action=\"https:\/\/fatihboy.com\/WCFOrnekleri\/IOrnekHizmet\/Say\", ReplyAction=\"https:\/\/fatihboy.com\/WCFOrnekleri\/IOrnekHizmet\/SayResponse\")]\n    int Say();\n}\n\n[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.ServiceModel\", \"4.0.0.0\")]\npublic interface IOrnekHizmetChannel : IOrnekHizmet, System.ServiceModel.IClientChannel\n{\n}\n\n[System.Diagnostics.DebuggerStepThroughAttribute()]\n[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.ServiceModel\", \"4.0.0.0\")]\npublic partial class OrnekHizmetClient : System.ServiceModel.ClientBase&lt;IOrnekHizmet>, IOrnekHizmet\n{\n\n    public OrnekHizmetClient()\n    {\n    }\n\n    public OrnekHizmetClient(string endpointConfigurationName) :\n            base(endpointConfigurationName)\n    {\n    }\n\n    public OrnekHizmetClient(string endpointConfigurationName, string remoteAddress) :\n            base(endpointConfigurationName, remoteAddress)\n    {\n    }\n\n    public OrnekHizmetClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :\n            base(endpointConfigurationName, remoteAddress)\n    {\n    }\n\n    public OrnekHizmetClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :\n            base(binding, remoteAddress)\n    {\n    }\n\n    public int Say()\n    {\n        return base.Channel.Say();\n    }\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi olu\u015fturulan kod 3 s\u0131n\u0131ftan olu\u015fmakta;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Gerekli WCF meta verileri eklenmi\u015f olan ve servisimizin kontrat\u0131n\u0131 belirten <strong>IOrnekHizmet<\/strong> aray\u00fcz\u00fc, <\/li><li> <strong>IOrnekHizmetChannel<\/strong> istemci kanal\u0131 aray\u00fcz\u00fc <\/li><li> WCF hizmetimiz ile ileti\u015fimi saylayacak olan <strong>OrnekHizmetClient<\/strong> istemci s\u0131n\u0131f\u0131 <\/li><\/ul>\n\n\n\n<p>&nbsp; Otomatik olarak \u00fcretilen bu aray\u00fcz ve s\u0131n\u0131flar\u0131 makalemin ilerleyen b\u00f6l\u00fcmlerinde birlikte inceleyece\u011fiz; fakat bu detaya ge\u00e7meden \u00f6nce isterseniz bir de Visual Studio&#8217;yu kullanarak bir istemci nas\u0131l olu\u015fturabilece\u011fimizi g\u00f6relim.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Visual Studio i\u00e7erisinde istemci uygulamam\u0131z\u0131 geli\u015ftiriyorken hizmetimize ba\u011flanmakta kullanaca\u011f\u0131m\u0131z kodlar\u0131 \u00fcretmemiz \u00e7ok daha kolay. Visual Studio yukar\u0131daki uygulama ve uygulamaya ge\u00e7ilen parametreleri bizlere kullan\u0131m\u0131 olduk\u00e7a kolay olan bir aray\u00fcz \u00fczerinden sorarak, girdimiz bilgiler do\u011frultusunda arka planda benzer i\u015flerle WCF istemci kodunu \u00fcretmektedir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Visual Studio i\u00e7erisinden hizmet referans\u0131 ekleme sihirbaz\u0131 ile hizmetinize ba\u011flanmada kullanaca\u011f\u0131n\u0131z istemci kodlar\u0131n\u0131 otomatik olarak olu\u015fturabilirsiniz. Bu sihirbaz\u0131 kullanabilmek i\u00e7in istemci projenize sa\u011f t\u0131klayarak, gelen men\u00fcden &#8220;<em>Add Service Reference\u2026<\/em>&#8221; se\u00e7ilmeli;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb.png\" alt=\"Visual Studio hizmet referans\u0131 ekleme sihirbaz\u0131n\u0131 projeye sa\u011f t\u0131klanarak gelen men\u00fcden ba\u015flat\u0131labilir\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; M\u00fcmk\u00fcn oldu\u011funca sade ve kolay kullan\u0131m\u0131 hedefleyen hizmet referans\u0131 ekleme diyalo\u011fu bizden istemci olu\u015fturulacak olan WCF hizmet meta veri adresini ve olu\u015fturulacak olan kodun hangi namespace alt\u0131nda olaca\u011f\u0131n\u0131 soracakt\u0131r;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image1.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb1.png\" alt=\"image\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Bu diyalogda ayr\u0131ca belirtti\u011fimiz meta veri i\u00e7erisinde yer alan hizmet(ler) ile bu hizmet(ler) i\u00e7erisinde yer alan fonksiyonaliteler de listelenecektir. Diyalogda yer alan &#8220;Advanced\u2026&#8221; butonu bizlere olu\u015fturulacak olan kod hakk\u0131nda daha detayl\u0131 yap\u0131land\u0131rma se\u00e7enekleri sunan &#8220;<em>Service Reference Settings<\/em>&#8221; diyalogunu a\u00e7acakt\u0131r;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image2.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb2.png\" alt=\"\u0130leri d\u00fczey i\u015flemlerin yap\u0131labilece\u011fi \"\/><\/a><\/figure>\n\n\n\n<p>&nbsp; Komut sat\u0131r\u0131ndan scvutil arac\u0131na verebilece\u011fimiz parametrelerle paralellik g\u00f6steren bu diyalogda, olu\u015fturulacak s\u0131n\u0131flar\u0131n hangi d\u00fczeyde eri\u015fime sahip olaca\u011f\u0131ndan mevcut bir assembly i\u00e7erisindeki t\u00fcrlerin kullan\u0131lmas\u0131na kadar pek \u00e7ok ileri d\u00fczey ayar yap\u0131labilmekte.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Diyalog \u00fczerindeki &#8220;<em>generate asyncronous operations<\/em>&#8221; se\u00e7ene\u011fi dikkatinizi \u00e7ekmi\u015ftir. Diyalog \u00fczerindeki bu se\u00e7ene\u011fin se\u00e7ilmesi durumunda olu\u015fturulacak koda hizmetin asenkron olarak \u00e7a\u011f\u0131r\u0131labilmesini sa\u011flayacak yard\u0131mc\u0131 fonksiyonlar eklenecektir. Bu fonksiyonlar kullan\u0131larak hizmetin \u00e7a\u011fr\u0131lmas\u0131 s\u0131ras\u0131nda kullan\u0131c\u0131lar\u0131n\u0131z\u0131n ba\u015fka i\u015fler yapabilmesi ve\/veya aray\u00fcz\u00fcn kilitlenmemesi sa\u011flanabilir. Diyalog \u00fczerinde yer alan &#8220;<em>Add Web Reference\u2026<\/em>&#8221; butonu ise .Net framework 2.0 uyumlu bir servis istemcisi \u00fcretilmesini sa\u011flayacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u0130htiya\u00e7lar\u0131n\u0131z do\u011frultusunda ayarlamalar\u0131n\u0131z\u0131 yaparak ok butonu yard\u0131m\u0131yla diyalogdan \u00e7\u0131kman\u0131z durumunda ,Visual Studio gerekli olan dosyalar\u0131 \u00fcreterek projeniz i\u00e7erisinde &#8220;<em>Service References<\/em>&#8221; klas\u00f6r\u00fc&nbsp; alt\u0131na atacakt\u0131r.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image3.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb3.png\" alt=\"Hizmet refenas\u0131n\u0131n eklenmesi sonras\u0131nda proje\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Hizmet referans\u0131n\u0131n eklenmesi sonras\u0131nda projeniz yukar\u0131daki gibi g\u00f6r\u00fcnecektir. Bu resimde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz service references klas\u00f6r\u00fc alt\u0131nda yer alan <em>Com.Enterprisecoding.WCFOrnekleri.OrnekHizmet<\/em> girdisi de asl\u0131nda bir klas\u00f6rd\u00fcr. \u0130\u00e7erisinde servis tan\u0131m dosyalar\u0131, yap\u0131land\u0131r ve kodlar\u0131n yer ald\u0131\u011f\u0131 bu klas\u00f6r Visual Studio taraf\u0131ndan bu \u015fekilde g\u00f6sterilmektedir. Solution Explorer penceresinde sa\u011f \u00fcst k\u00f6\u015fede yer alan &#8220;Show All Files&#8221; butonuna bas\u0131lacak olursa bu klas\u00f6r alt\u0131ndaki bahsetti\u011fim dosyalar da g\u00f6r\u00fclebilir.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image4.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb4.png\" alt=\"Solution Explorer penceresinde yeralan &quot;t\u00fcm dosyalar\u0131 g\u00f6ster&quot; butonu\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image6.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb5.png\" alt=\"T\u00fcm dosyalar\u0131n g\u00f6sterilmesi sonras\u0131nda Solution Explorer\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; A\u015fa\u011f\u0131da &#8220;Show All Files&#8221; butonuna bas\u0131lmas\u0131 sonras\u0131 dosyalar\u0131n nas\u0131l g\u00f6r\u00fcnd\u00fc\u011f\u00fcne dair bir ekran g\u00f6r\u00fcnt\u00fcs\u00fc bulabilirsiniz;<\/p>\n\n\n\n<p>&nbsp;&nbsp; Ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde <em>Com.Enterprisecoding.WCFOrnekleri.OrnekHizmet<\/em> klas\u00f6r\u00fc alt\u0131nda yer alan dosyalardan References.cs i\u00e7erisinde otomatik \u00fcretilmi\u015f olan kodlar\u0131 bulundurmaktad\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Dilerseniz hizmet istemcinizi olu\u015fturduktan sonra hizmet istemcinize ait klas\u00f6re sa\u011f t\u0131klayarak, gelen men\u00fcden hizmet referans\u0131n\u0131 g\u00fcncelleyebilir ya da yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirebilirsiniz;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image7.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/image_thumb6.png\" alt=\"image\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Visual Studio i\u00e7erisinde yukar\u0131da s\u0131ralad\u0131\u011f\u0131m i\u015flemlerin yap\u0131lmas\u0131 sonras\u0131nda olu\u015fan istemci kodunun uygulamam\u0131z i\u00e7erisinde kullan\u0131lmas\u0131 olduk\u00e7a kolay. Hizmet istemcisi hakk\u0131ndaki bilgiler (kullan\u0131lacak olan protokol, u\u00e7 noktas\u0131 adresi v.b.) uygulaman\u0131n yap\u0131land\u0131rma dosyas\u0131na eklendi\u011fi i\u00e7in kod i\u00e7erisinde yeni bir \u00f6rne\u011fini olu\u015fturmak olduk\u00e7a kolay. A\u015fa\u011f\u0131daki kod \u00f6rne\u011fi olu\u015fturulan hizmet istemcisinin kullan\u0131m\u0131n\u0131n ne kadar kolay oldu\u011funu sizlere g\u00f6sterecektir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">static void Main(string[] args) {\n    var istemci = new OrnekHizmetClient();\n\n    istemci.Say()\n\n    Console.WriteLine();\n    Console.WriteLine(\"Uygulamay\u0131 sonland\u0131rmak i\u00e7in herhangi bir tu\u015fa bas\u0131n\u0131z\");\n    Console.ReadKey();\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi internet\/intranet \u00fczerinde yer alan hizmeti ayn\u0131 normal bir s\u0131n\u0131f\u0131n fonksiyonlar\u0131n\u0131 kullan\u0131r gibi rahatl\u0131kla kullanabilmekteyim. Burada da, sunucu taraf\u0131n\u0131 anlatt\u0131\u011f\u0131m makalelerimde sizlerle payla\u015ft\u0131\u011f\u0131m gibi, yap\u0131land\u0131rma bilgisi ve u\u00e7 nokta adresi kod i\u00e7erisinden de ge\u00e7ilebilmektedir. Herhangi bir yap\u0131land\u0131rma bilgisi ve\/veya u\u00e7 noktas\u0131 belirtilmemesi durumunda uygulaman\u0131n yap\u0131land\u0131rma dosyas\u0131nda t\u00fcr i\u00e7in tan\u0131mlanm\u0131\u015f olan de\u011ferler kullan\u0131lacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Makalemde sizlerle payla\u015ft\u0131\u011f\u0131m yukar\u0131daki iki y\u00f6ntem bizler ad\u0131na kodlar \u00fcreterek hizmetlere h\u0131zl\u0131ca ba\u011flanmam\u0131z\u0131 sa\u011flamakta. Baz\u0131 durumlarda i\u015f mant\u0131\u011f\u0131m\u0131z gere\u011fi olu\u015fan s\u0131n\u0131flar\u0131n i\u00e7eri\u011fine ve i\u015f ak\u0131\u015flar\u0131na m\u00fcdahale etmemiz gerekebilir.&nbsp; Bu gibi durumlarda kodu otomatik \u00fcretmek yerine kendimizin de yazmas\u0131 m\u00fcmk\u00fcnd\u00fcr.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Her WCF uygulamas\u0131nda oldu\u011fu gibi istemcimizin kodunu yazarken de \u00f6ncelikle kullanaca\u011f\u0131m\u0131z\u0131 ba\u011flay\u0131c\u0131 ve hizmetin u\u00e7 noktas\u0131 adresini belirtmeliyiz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">WSHttpBinding baglayici = new WSHttpBinding();\nEndpointAddress ucNokta = new EndpointAddress(\"http:\/\/localhost:1234\/WCFOrnekleri\/OrnekHizmet\");<\/pre>\n\n\n\n<p>&nbsp; Dikkat ettiyseniz u\u00e7 nokta adresini verirken temel adresten hemen sonra kullanaca\u011f\u0131m u\u00e7 noktas\u0131 adresi de eklenmi\u015f durumda. Bu noktadan son yapmam\u0131z gereken hizmet istemcimizi bizim i\u00e7in \u00fcretecek olan bir fabrika \u00f6rne\u011fi olu\u015fturmak. .Net framework ile birlikte gelen generik <strong>ChannelFactory<\/strong> s\u0131n\u0131f\u0131 bizim ad\u0131m\u0131za aray\u00fcz\u00fcn\u00fc verdi\u011fimiz hizmete belirtilen ba\u011flay\u0131c\u0131 ve u\u00e7 noktayla ba\u011flanacak istemciler \u00fcretmekte.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ChannelFactory&lt;IOrnekHizmet> istemciFabrikasi = new ChannelFactory&lt;IOrnekHizmet>(baglayici, ucNokta);<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131daki kod IOrnekHizmet aray\u00fcz\u00fcyle belirtilen kontrata uygun olarak verilen ba\u011flay\u0131c\u0131 ve u\u00e7 nokta ile \u00e7al\u0131\u015facak olan istemciler \u00fcretebilecek bir istemci fabrikas\u0131 olu\u015fturmakta. Iistemci ve sunucu taraf\u0131 kodlar\u0131n\u0131n elimizde oldu\u011fu bu makalede IOrnekHizmet aray\u00fcz\u00fcn\u00fc sunucu projemiz i\u00e7erisinde istemci projemize kopyalamam\u0131z yeterli olacakt\u0131r. Bu ad\u0131m sonras\u0131nda her istemci \u00fcretilmesi gereken noktada istemci fabrikas\u0131na ait <strong>CreateChannel<\/strong> fonksiyonu kullan\u0131labilir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IOrnekHizmet istemci = istemciFabrikasi.CreateChannel();<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu kodun her kullan\u0131ld\u0131\u011f\u0131 yerde \u00f6nceden fabrikaya verilmi\u015f olan bilgilerle hizmete veri g\u00f6nderecek bir kanal a\u00e7\u0131lacakt\u0131r. Bu noktadan sonra istemci \u00f6rne\u011fi \u00fczerinden IOrnekHizmet kontratt\u0131yla belirtilen t\u00fcm fonksiyonaliteler kullan\u0131labilir olacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp; T\u00fcm resmi bir araya toplayacak olursak, programsal olarak bir istemci olu\u015fturman\u0131n asl\u0131nda olduk\u00e7a kolay oldu\u011funu sizlerde g\u00f6rebilirsiniz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">WSHttpBinding baglayici = new WSHttpBinding();\nEndpointAddress ucNokta = new EndpointAddress(\"http:\/\/localhost:1234\/WCFOrnekleri\/OrnekHizmet\");\n\nChannelFactory&lt;IOrnekHizmet> istemciFabrikasi = new ChannelFactory&lt;IOrnekHizmet>(baglayici, ucNokta);\nvar istemci = istemciFabrikasi.CreateChannel();\n\nistemci.Say();<\/pre>\n\n\n\n<p>&nbsp;&nbsp; WCF serimizde geldi\u011fimiz noktada gerek istemci gerekse de sunucu taraf\u0131nda temel d\u00fczeyde bir etkile\u015fim i\u00e7in gerekli bilgiye aktarabildi\u011fimi umuyorum. \u0130lerleyen makalelerimizde gerek hizmet \u00f6rne\u011fi y\u00f6netimi gerekse de istemci y\u00f6netimi konular\u0131na daha detayl\u0131 olarak de\u011finece\u011fiz.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Windows Communication Foundation&#8217;\u0131n detaylar\u0131n\u0131 sizlerle payla\u015fmay\u0131 hedefledi\u011fim makale serisinde daha \u00f6nce sizlerle bir WCF hizmetini gerek app.config dosyas\u0131 \u00fczerinden gerekse de programsal olarak nas\u0131l olu\u015fturabilece\u011finizi payla\u015fm\u0131\u015ft\u0131m. Giri\u015f d\u00fczeyinde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz WCF hizmeti olu\u015fturma konusunda ilerleyen makalelerde daha detayl\u0131 bilgiler payla\u015fmay\u0131 planlamakla birlikte, bu konudaki ileri tekniklere\/ detaylara ge\u00e7meden \u00f6nce isterseniz birlikte bir WCF hizmet istemcisini&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,115],"tags":[41,116],"class_list":["post-8535","post","type-post","status-publish","format-standard","hentry","category-turkce","category-wcf","tag-c","tag-wcf"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; Windows Communication Foundation&#8217;\u0131n detaylar\u0131n\u0131 sizlerle payla\u015fmay\u0131 hedefledi\u011fim makale serisinde daha \u00f6nce sizlerle bir WCF hizmetini gerek app.config dosyas\u0131 \u00fczerinden gerekse de programsal olarak nas\u0131l olu\u015fturabilece\u011finizi payla\u015fm\u0131\u015ft\u0131m. Giri\u015f d\u00fczeyinde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz WCF hizmeti olu\u015fturma konusunda ilerleyen makalelerde daha detayl\u0131 bilgiler payla\u015fmay\u0131 planlamakla birlikte, bu konudaki ileri tekniklere\/ detaylara ge\u00e7meden \u00f6nce isterseniz birlikte bir WCF hizmet istemcisini...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2010-12-16T22:23:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Bir WCF Hizmetine \u0130stemci Olu\u015fturma\",\"datePublished\":\"2010-12-16T22:23:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/\"},\"wordCount\":1956,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\",\"keywords\":[\"C#\",\"WCF\"],\"articleSection\":[\"T\u00fcrk\u00e7e\",\"WCF\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/\",\"url\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/\",\"name\":\"Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\",\"datePublished\":\"2010-12-16T22:23:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bir WCF Hizmetine \u0130stemci Olu\u015fturma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/","og_locale":"en_US","og_type":"article","og_title":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy","og_description":"&nbsp;&nbsp; Windows Communication Foundation&#8217;\u0131n detaylar\u0131n\u0131 sizlerle payla\u015fmay\u0131 hedefledi\u011fim makale serisinde daha \u00f6nce sizlerle bir WCF hizmetini gerek app.config dosyas\u0131 \u00fczerinden gerekse de programsal olarak nas\u0131l olu\u015fturabilece\u011finizi payla\u015fm\u0131\u015ft\u0131m. Giri\u015f d\u00fczeyinde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz WCF hizmeti olu\u015fturma konusunda ilerleyen makalelerde daha detayl\u0131 bilgiler payla\u015fmay\u0131 planlamakla birlikte, bu konudaki ileri tekniklere\/ detaylara ge\u00e7meden \u00f6nce isterseniz birlikte bir WCF hizmet istemcisini...Read More","og_url":"https:\/\/fatihboy.com\/en\/bir-wcf-hizmetine-istemci-olusturma\/","og_site_name":"Fatih Boy","article_published_time":"2010-12-16T22:23:21+00:00","og_image":[{"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg","type":"","width":"","height":""}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma","datePublished":"2010-12-16T22:23:21+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/"},"wordCount":1956,"commentCount":1,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg","keywords":["C#","WCF"],"articleSection":["T\u00fcrk\u00e7e","WCF"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/","url":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/","name":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg","datePublished":"2010-12-16T22:23:21+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/12\/draw-map.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/bir-wcf-hizmetine-istemci-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Bir WCF Hizmetine \u0130stemci Olu\u015fturma"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=8535"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8535\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=8535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=8535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=8535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}