{"id":33086,"date":"2010-06-19T18:44:50","date_gmt":"2010-06-19T16:44:50","guid":{"rendered":"\/post\/IIS-7-Yoneticisi-Agac-Hiyerarsisini-Genisletme.aspx"},"modified":"2021-06-14T18:58:10","modified_gmt":"2021-06-14T15:58:10","slug":"iis-7-yoneticisi-agac-hiyerarsisini-genisletme","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/","title":{"rendered":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme"},"content":{"rendered":"<p><a href=\"\/en\/?p=10\" target=\"_blank\" rel=\"noopener noreferrer\">Bir \u00f6nceki makalemde<\/a> sizlerle IIS 7 y\u00f6neticisi geni\u015fletilebilir mimarisinden ve kendi mod\u00fcl\u00fcn\u00fcz\u00fc nas\u0131l ekleyebilece\u011finizden bahsetmi\u015ftim. IIS 7 geni\u015fletilebilirlik anlam\u0131nda bize pek \u00e7ok y\u00f6ntem sunmakta ve bu makalemde bu sizlerle IIS7 y\u00f6neticisi a\u011fa\u00e7 hiyerar\u015fisine nas\u0131l yeni bir girdi ekleyebilece\u011finizi payla\u015faca\u011f\u0131m.<\/p>\n\n\n\n<p>A\u011fa\u00e7 hiyerar\u015fisine yeni bir girdi olu\u015fturmak i\u00e7in en basit \u015fekliyle a\u015fa\u011f\u0131da s\u0131ralad\u0131\u011f\u0131m 3 temel par\u00e7ac\u0131\u011fa ihtiya\u00e7 olacakt\u0131r;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Hiyerar\u015fi Servisi<\/strong> : T\u00fcm IIS 7 y\u00f6netici hiyerar\u015fisini y\u00f6neten <em>Hiyerar\u015fi Servisi<\/em> sundu\u011fu Select, Delete, Refresh v.b. metodlar sayesinde programsal olarak hiyerar\u015fiye m\u00fcdahale edilmesine olanak sunmaktad\u0131r. Aray\u00fcz taraf\u0131ndan bizlere bir \u00f6rne\u011fi verilen bu servise <em>ServiceProvider<\/em> \u00fczerinden ula\u015f\u0131labilir.<\/li><li><strong>Hiyerar\u015fi Bilgisi<\/strong> : A\u011fa\u00e7 \u00fczerindeki bir d\u00fc\u011f\u00fcm\u00fc temsil eden <em>Hiyerar\u015fi Bilgisi,<\/em> temelde abstract olan <em>Microsoft.Web.Management.Client.HierarchyInfo<\/em> s\u0131n\u0131f\u0131nden t\u00fcretilen bir s\u0131n\u0131ft\u0131r. <em>HierarchyInfo<\/em>\u2018dan kal\u0131t\u0131lm\u0131\u015f metodlar yard\u0131m\u0131yla alt d\u00fc\u011f\u00fcmlerin bulunup bulunmad\u0131\u011f\u0131, d\u00fc\u011f\u00fcm\u00fcn ad\u0131 gibi bilgileri verebilir ve se\u00e7ildi\u011finde,silindi\u011finde ya da yeniden adland\u0131r\u0131ld\u0131\u011f\u0131nda yap\u0131lacak olan i\u015flemlerimizi yerine getirebiliriz.<\/li><li><strong>Hiyerar\u015fi Sa\u011flay\u0131c\u0131s\u0131<\/strong> : IIS 7 Y\u00f6neticisi a\u011fa\u00e7 hiyerar\u015fisini geni\u015fletmekte giri\u015f noktan\u0131z olan Hiyarar\u015fi Sa\u011flay\u0131c\u0131s\u0131, temelde abstract <em>Microsoft.Web.Management.Client.HierarchyProvider<\/em> s\u0131n\u0131f\u0131ndan t\u00fcretilen bir s\u0131n\u0131ft\u0131r. A\u011fa\u00e7 hiyerar\u015fisi olu\u015fturulurken hiyerar\u015fi servisi t\u00fcm kay\u0131tl\u0131 hiyerar\u015fi sa\u011flay\u0131c\u0131lar\u0131n\u0131 dola\u015farak a\u011fac\u0131 olu\u015fturur.<\/li><\/ul>\n\n\n\n<p>Konuyu peki\u015ftirmek i\u00e7in yaz\u0131m\u0131n devam\u0131nda yer verece\u011fim \u00f6rnek kodlar <a href=\"\/en\/?p=10\" target=\"_blank\" rel=\"noopener noreferrer\">IIS 7 Yoneticisine Kendi Modulunuzu Eklemek<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131m\u0131nda ele ald\u0131\u011f\u0131m \u00f6rnek projenin devam\u0131 olacakt\u0131r. Bu sebeple bir mod\u00fcl\u00fc IIS&#8217; y\u00f6neticisine nas\u0131l kay\u0131t edece\u011finiz ve nas\u0131l debug edebilece\u011finiz gibi ayr\u0131nt\u0131lar\u0131 bildi\u011finizi yada <a href=\"\/en\/?p=10\" target=\"_blank\" rel=\"noopener noreferrer\">bir \u00f6nceki makalemi<\/a> okudu\u011funuzu varsay\u0131yorum.<\/p>\n\n\n\n<p>Yukar\u0131daki teorik bilgi \u0131\u015f\u0131\u011f\u0131nda \u00f6rnek kodumuzu yazmaya ba\u015flayal\u0131m. Olu\u015fturaca\u011f\u0131m\u0131z ilk s\u0131n\u0131f Hiyerar\u015fi bilgisini verecek olan <em>OrnekHiyerarsiBilgisi<\/em> s\u0131n\u0131f olacakt\u0131r.<\/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=\"\">internal class OrnekHiyerarsiBilgisi : HierarchyInfo {\n    public OrnekHiyerarsiBilgisi(IServiceProvider serviceProvider) : base(serviceProvider) { }\n\n    public override string NodeType {\n        get { return \"Enterprisecoding.IISManagerModule.Ornek\"; }\n    }\n\n    public override bool SupportsChildren {\n        get { return false; }\n    }\n\n    public override string Text {\n        get { return \"Ornek IIS Mod\u00fcl\u00fc\"; }\n    }\n\n    protected override bool OnSelected() {\n        return Navigate(typeof(OrnekModulSayfasi));\n    }\n}<\/pre>\n\n\n\n<p><em>HierarchyInfo<\/em>&nbsp; s\u0131n\u0131f\u0131ndan t\u00fcretti\u011fimiz <em>OrnekHiyerarsiBilgisi<\/em> s\u0131n\u0131f\u0131nda atadan kal\u0131t\u0131lan a\u015fa\u011f\u0131daki \u00f6zellik ve metodlar kullan\u0131larak hiyerar\u015fi servisince kullan\u0131lacak bilgiler verilmi\u015ftir.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>SupportsChildren<\/strong>; bool t\u00fcr\u00fcnden olan bu \u00f6zellik hiyerar\u015fi servisince d\u00fc\u011f\u00fcm\u00fcm\u00fcze ba\u011fl\u0131 alt d\u00fc\u011f\u00fcmler bulunup bulunmad\u0131\u011f\u0131n\u0131n sorgulanmas\u0131 i\u00e7in kullan\u0131lmaktad\u0131r. Bu \u00f6rnekte varsay\u0131lan olan d\u00f6nd\u00fc\u011f\u00fcm\u00fcz false de\u011feri ba\u011fl\u0131 herhangi bir alt d\u00fc\u011f\u00fcm bulunmad\u0131\u011f\u0131n\u0131 belirtmektedir.<\/li><li><strong>Text<\/strong>; string t\u00fcr\u00fcnden olan bu \u00f6zellik hiyerar\u015fi servisinin d\u00fc\u011f\u00fcm\u00fcm\u00fcz\u00fc aray\u00fczde hangi isimle g\u00f6sterece\u011fini belirtmek i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fimizde d\u00fc\u011f\u00fcm\u00fcm\u00fcz aray\u00fczde &#8220;<em>Ornek IIS Mod\u00fcl\u00fc<\/em>&#8221; ismiyle g\u00f6sterilecektir.<\/li><li><strong>NodeType<\/strong>; string t\u00fcr\u00fcnden olan bu \u00f6zellik programsal olarak d\u00fc\u011f\u00fcm\u00fcm\u00fcz\u00fcn hangi t\u00fcrde oldu\u011funu belirtmek ve d\u00fc\u011f\u00fcm t\u00fcr\u00fcne g\u00f6re i\u015flem yapabilmek amac\u0131yla kullan\u0131l\u0131r. Bu \u00f6rnek i\u00e7in <em>Enterprisecoding.IISManagerModule.Ornek<\/em> de\u011ferine sahiptir. Bu \u00f6zelli\u011fe d\u00fc\u011f\u00fcm t\u00fcr\u00fcn\u00fcz\u00fc belirten tekil herhangi bir string verilebilir.<\/li><li><strong>OnSelected<\/strong> : IIS 7 y\u00f6netim konsolu \u00fczerinden kullan\u0131c\u0131n\u0131n d\u00fc\u011f\u00fcm\u00fcm\u00fcz\u00fc se\u00e7mesi durumunda hiyerar\u015fi servisince \u00e7a\u011f\u0131r\u0131lacak olan bu metod bize kendi i\u015f mant\u0131\u011f\u0131m\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunmaktad\u0131r. Bu \u00f6rnekte d\u00fc\u011f\u00fcm\u00fcm\u00fcz se\u00e7ildi\u011finde IIS 7 y\u00f6netim konsolunda bir \u00f6nceki makalemde olu\u015fturdu\u011fumuz \u00f6rnek mod\u00fcl sayfas\u0131 g\u00f6sterilecektir.<\/li><\/ul>\n\n\n\n<p>Bu \u00f6zellikler ve metodlar d\u0131\u015f\u0131nda <em>SupportsDelete<\/em> ve <em>SupportsRename<\/em> \u00f6zellikleri sayesinde d\u00fc\u011f\u00fcm\u00fcn silme ve yeniden adland\u0131rma fonksiyonaliteleri olup olmad\u0131\u011f\u0131n\u0131 belirtebilir ve <em>OnDeleting<\/em>, <em>OnRenamed<\/em>, <em>OnRenaming<\/em> gibi metodlarla da bu fonksiyonaliteleri kontrol edebilirsiniz.<\/p>\n\n\n\n<p>Olu\u015fturaca\u011f\u0131m\u0131z bir di\u011fer s\u0131n\u0131f ise <em>OrnekHiyerarsiBilgisi<\/em> s\u0131n\u0131f \u00f6rne\u011fini hiyerar\u015fi servisine tan\u0131taca\u011f\u0131m\u0131z hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131d\u0131r.<\/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=\"\">internal class OrnekHiyararsiSaglayicisi : HierarchyProvider {\n    public OrnekHiyararsiSaglayicisi(IServiceProvider serviceProvider)\n        : base(serviceProvider) {\n    }\n\n    public override HierarchyInfo[] GetChildren(HierarchyInfo item) {\n        if (item.NodeType == HierarchyInfo.ServerConnection) {\n            return new HierarchyInfo[] { new OrnekHiyerarsiBilgisi(this) };\n        }\n\n        return null;\n    }\n}<\/pre>\n\n\n\n<p>Yukar\u0131da m\u00fcmk\u00fcn oldu\u011funca basit bir \u015fekilde <em>OrnekHiyararsiSaglayicisi<\/em> s\u0131n\u0131f\u0131 ile \u00f6rnekledi\u011fim hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131 HierarchyProvider s\u0131n\u0131f\u0131nda kal\u0131tarak kulland\u0131\u011f\u0131 <em>GetChildren<\/em> metodu ile hiyerar\u015fi servisine gerekli hiyerar\u015fi bilgilerini d\u00f6nmektedir.<\/p>\n\n\n\n<p>GetChildren metodu parametre olarak kabul etti\u011fi hiyerar\u015fi bilgisi yard\u0131m\u0131yla hangi noktada bulundu\u011funu hiyerar\u015fi servis s\u0131n\u0131f\u0131ndan \u00f6\u011frenerek karar vermenizi sa\u011flamaktad\u0131r. Yukar\u0131daki \u00f6rnekte biraz \u00f6nce olu\u015fturdu\u011fumuz OrnekHiyerarsiBilgisi s\u0131n\u0131f\u0131n\u0131n sadece sunucu seviyesinde kullan\u0131mas\u0131 sa\u011flanmakta.<\/p>\n\n\n\n<p>Hiyerar\u015fi bilgisi ve hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131 s\u0131n\u0131flar\u0131n\u0131 olu\u015fturarak i\u015fin \u00f6nemli bir k\u0131sm\u0131n\u0131 tamamlam\u0131\u015f oluyoruz. Bu noktada art\u0131k mod\u00fcl\u00fcm\u00fcz i\u00e7erisine giderek hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131n\u0131 tan\u0131tmal\u0131y\u0131z. A\u015fa\u011f\u0131da bir \u00f6nceki makalemde olu\u015fturdu\u011fumuz OrnekModul s\u0131n\u0131f\u0131 i\u00e7erisinde yer alan initialize metodunu 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=\"\">internal class OrnekModul : Module\n{\n    protected override void Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo)\n    {\n        base.Initialize(serviceProvider, moduleInfo);\n\n        \/\/ ....\n        \/\/mod\u00fcl ile ilgili yap\u0131lan di\u011fer ilklendirme i\u015flemleri\n        \/\/ ....\n\n        var extensibilityManager = (IExtensibilityManager)GetService(typeof(IExtensibilityManager));\n        extensibilityManager.RegisterExtension(typeof(HierarchyProvider), new OrnekHiyararsiSaglayicisi(serviceProvider));\n\n    }\n}<\/pre>\n\n\n\n<p>Not; Hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131n\u0131 kay\u0131t ettirdi\u011fimiz b\u00f6l\u00fcme odaklanabilmek i\u00e7in bir \u00f6nceki makalemde&nbsp; bahsetmi\u015f oldu\u011fum bunun d\u0131\u015f\u0131ndaki b\u00f6l\u00fcmlere yer vermiyorum.<\/p>\n\n\n\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi hiyerar\u015fi sa\u011flay\u0131c\u0131s\u0131n\u0131 kay\u0131t etmek bu kadar kolay.<\/p>\n\n\n\n<p>Kodumuzu derledikten sonra IIS y\u00f6neticisi konsolunu a\u00e7t\u0131\u011f\u0131m\u0131zda sol tarafta yer alan a\u011fa\u00e7 i\u00e7erisinde olu\u015fturdu\u011fumuz d\u00fc\u011f\u00fcm\u00fc g\u00f6rebilir, bu d\u00fc\u011f\u00fcm\u00fc se\u00e7ti\u011fimizde ise daha \u00f6nceden olu\u015fturdu\u011fumuz mod\u00fcl sayfas\u0131n\u0131n a\u00e7\u0131ld\u0131\u011f\u0131n\u0131 test edebiliriz.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\" alt=\"IIS Y\u00f6neticisi \u00d6zelle\u015ftirilmi\u015f A\u011fa\u00e7 D\u00fc\u011f\u00fcm\u00fc\"\/><\/a><\/figure>\n\n\n\n<p>\u015eimdi de isterseniz bu d\u00fc\u011f\u00fcm\u00fcn men\u00fcs\u00fcne yeni girdiler eklemeye \u00e7al\u0131\u015fal\u0131m. Hiyerar\u015fi servisi bir d\u00fc\u011f\u00fcme sa\u011f t\u0131kland\u0131\u011f\u0131nda g\u00f6sterilecek olan men\u00fcye ait girdileri ilgili hiyerar\u015fi bilgisi s\u0131n\u0131f\u0131nda yer alan <em>Tasks<\/em> \u00f6zelli\u011fi sayesinde bulur. <em>TaskListCollection<\/em> t\u00fcr\u00fcnden olan bu \u00f6zellikte eklenecek olan tasklar <em>Microsoft.Web.Management.Client.TaskList<\/em> s\u0131n\u0131f\u0131ndan t\u00fcretilmi\u015f bir s\u0131n\u0131f vas\u0131tas\u0131yla eklenebilir.<\/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=\"\">internal class OrnekHiyerarsiTaskListesi : TaskList {\n    public override System.Collections.ICollection GetTaskItems(){\n        var items = new ArrayList();\n\n        var taskItem = new MethodTaskItem(\n                            \"MesajGoster\",      \/\/ Metod Ad\u0131\n                            \"Mesaj G\u00f6ster\",     \/\/ Men\u00fcde g\u00f6r\u00fclecek text\n                            \"OrnekKategori\");   \/\/ Kategori\n\n        taskItem.Enabled = true;\n        items.Add(taskItem);\n\n        return items;\n    }\n\n    public void MesajGoster() {\n        MessageBox.Show(\"Mesaj G\u00f6ster'e butonuna bas\u0131ld\u0131\");\n    }\n}<\/pre>\n\n\n\n<p>Yukar\u0131da yer alan ve TaskList\u2019ten t\u00fcretilmi\u015f olan OrnekHiyerarsiTaskListesi s\u0131n\u0131f\u0131nda task tan\u0131mlamas\u0131 GetTaskItems metodu i\u00e7erisinde yap\u0131lmaktad\u0131r. Bu \u00f6rnekte <em>MethodTaskItem<\/em> kullan\u0131larak Mesaj G\u00f6ster task\u2019\u0131 olu\u015fturulmu\u015ftur. MethodTaskItem s\u0131n\u0131f\u0131 olu\u015fturulurken s\u0131ras\u0131yla task\u2019\u0131n \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131 metod ad\u0131, men\u00fcde g\u00f6sterilecek text ve task\u2019\u0131n ait oldu\u011fu kategori ad\u0131 verilmi\u015ftir. Verilen ilk parametre olan metod ad\u0131, task men\u00fcden se\u00e7ildi\u011finde \u00e7al\u0131\u015ft\u0131r\u0131lacak olan metodun ad\u0131d\u0131r. Parametresiz olmas\u0131 gereken bu metod ilgili s\u0131n\u0131fta tan\u0131ml\u0131 olmal\u0131d\u0131r. Yukar\u0131daki \u00f6rnekte metod ad\u0131 olarak MesajGoster verildi\u011fi ve bu metodun s\u0131n\u0131f i\u00e7erisinde tan\u0131mland\u0131\u011f\u0131.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/AgacDugumuMenu.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/AgacDugumuMenu_thumb.png\" alt=\"\u00d6zelle\u015ftirilmi\u015f A\u011fa\u00e7 D\u00fc\u011f\u00fcm\u00fc Men\u00fc\"\/><\/a><\/figure>\n\n\n\n<p>\u00d6rnekte, kullan\u0131c\u0131 men\u00fcden <em>Mesaj g\u00f6ster<\/em> se\u00e7ene\u011fini se\u00e7ti\u011finde <em>MesajGoster<\/em> metodu \u00e7al\u0131\u015ft\u0131r\u0131larak kullan\u0131c\u0131ya &#8220;<em>Mesaj G\u00f6ster\u2019e butonuna bas\u0131ld\u0131<\/em>&#8221; mesaj\u0131 g\u00f6sterilecektir.<\/p>\n\n\n\n<p>Baz\u0131 tasar\u0131mlarda, ekledi\u011fimiz men\u00fc nesnesinin kullanaca\u011f\u0131 metoda parametre ge\u00e7mek isteyebiliriz. \u00d6rne\u011fin; ayn\u0131 metodu kullanan birden fazla men\u00fc nesnesinden hangisinin \u00e7a\u011fr\u0131y\u0131 tetikledi\u011fini bilmek. Bunu yapabilmek i\u00e7in MethodTaskItem s\u0131n\u0131f\u0131 olu\u015fturulurken kullan\u0131c\u0131 verisi ge\u00e7ebilece\u011fimiz constructer\u2019\u0131n\u0131 kullanmam\u0131z yeterli olacakt\u0131r.<\/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=\"\">internal class OrnekHiyerarsiTaskListesi : TaskList {\n    public override System.Collections.ICollection GetTaskItems() {\n        var items = new ArrayList();\n\n        var taskItem1 = new MethodTaskItem(\n                            \"MesajGoster\",      \/\/ Metod Ad\u0131\n                            \"Mesaj G\u00f6ster 1\",   \/\/ Men\u00fcde g\u00f6r\u00fclecek text\n                            \"OrnekKategori\",    \/\/ Kategori\n                            \"Mesaj g\u00f6sterir\",   \/\/ Tan\u0131mlay\u0131c\u0131 bilgi\n                            null,               \/\/ Men\u00fcdeki resmi\n                            \"Mesaj G\u00f6ster 1\");  \/\/ Parametre\n\n        var taskItem2 = new MethodTaskItem(\n                            \"MesajGoster\",      \/\/ Metod Ad\u0131\n                            \"Mesaj G\u00f6ster 2\",   \/\/ Men\u00fcde g\u00f6r\u00fclecek text\n                            \"OrnekKategori\",    \/\/ Kategori\n                            \"Mesaj g\u00f6sterir\",   \/\/ Tan\u0131mlay\u0131c\u0131 bilgi\n                            null,               \/\/ Men\u00fcdeki resmi\n                            \"Mesaj G\u00f6ster 2\");  \/\/ Parametre\n\n        taskItem1.Enabled = true;\n        taskItem2.Enabled = true;\n\n        items.Add(taskItem1);\n        items.Add(taskItem2);\n\n        return items;\n    }\n\n    public void MesajGoster(object message) {\n        MessageBox.Show(string.Format(\"{0}'e bas\u0131ld\u0131\", message));\n    }\n}<\/pre>\n\n\n\n<p>MethodTaskItem s\u0131n\u0131f\u0131n\u0131n object olarak kullan\u0131c\u0131 verisini kabul eden constructer\u2019\u0131 yard\u0131m\u0131yla metoda ge\u00e7mek istedi\u011fimiz veriyi belirtebiliriz. Yaln\u0131z dikkat edilmesi gereken nokta, bu kullan\u0131mda bir \u00f6ncekinden farkl\u0131 olarak \u00e7a\u011f\u0131r\u0131lacak olan metodun parametresiz de\u011fil object kabul eden tek parametreli bir metod olmas\u0131 gerekmektedir. Yukar\u0131daki \u00f6rnekte g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi her iki men\u00fc nesnesi de ayn\u0131 metodu kullanmakta, metod kendisine g\u00f6nderilen parametre do\u011frultusunda hangi men\u00fc nesnesince \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131 bilmekte.<\/p>","protected":false},"excerpt":{"rendered":"<p>Bir \u00f6nceki makalemde sizlerle IIS 7 y\u00f6neticisi geni\u015fletilebilir mimarisinden ve kendi mod\u00fcl\u00fcn\u00fcz\u00fc nas\u0131l ekleyebilece\u011finizden bahsetmi\u015ftim. IIS 7 geni\u015fletilebilirlik anlam\u0131nda bize pek \u00e7ok y\u00f6ntem sunmakta ve bu makalemde bu sizlerle IIS7 y\u00f6neticisi a\u011fa\u00e7 hiyerar\u015fisine nas\u0131l yeni bir girdi ekleyebilece\u011finizi payla\u015faca\u011f\u0131m. A\u011fa\u00e7 hiyerar\u015fisine yeni bir girdi olu\u015fturmak i\u00e7in en basit \u015fekliyle a\u015fa\u011f\u0131da s\u0131ralad\u0131\u011f\u0131m 3 temel par\u00e7ac\u0131\u011fa ihtiya\u00e7&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\">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":[91,28],"tags":[41,90],"class_list":["post-33086","post","type-post","status-publish","format-standard","hentry","category-iis","category-turkce","tag-c","tag-iis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - 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\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"Bir \u00f6nceki makalemde sizlerle IIS 7 y\u00f6neticisi geni\u015fletilebilir mimarisinden ve kendi mod\u00fcl\u00fcn\u00fcz\u00fc nas\u0131l ekleyebilece\u011finizden bahsetmi\u015ftim. IIS 7 geni\u015fletilebilirlik anlam\u0131nda bize pek \u00e7ok y\u00f6ntem sunmakta ve bu makalemde bu sizlerle IIS7 y\u00f6neticisi a\u011fa\u00e7 hiyerar\u015fisine nas\u0131l yeni bir girdi ekleyebilece\u011finizi payla\u015faca\u011f\u0131m. A\u011fa\u00e7 hiyerar\u015fisine yeni bir girdi olu\u015fturmak i\u00e7in en basit \u015fekliyle a\u015fa\u011f\u0131da s\u0131ralad\u0131\u011f\u0131m 3 temel par\u00e7ac\u0131\u011fa ihtiya\u00e7...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2010-06-19T16:44:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-14T15:58:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\" \/>\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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme\",\"datePublished\":\"2010-06-19T16:44:50+00:00\",\"dateModified\":\"2021-06-14T15:58:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\"},\"wordCount\":1332,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\",\"keywords\":[\"C#\",\"IIS\"],\"articleSection\":[\"IIS\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\",\"url\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\",\"name\":\"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\",\"datePublished\":\"2010-06-19T16:44:50+00:00\",\"dateModified\":\"2021-06-14T15:58:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme\"}]},{\"@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":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - 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\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/","og_locale":"en_US","og_type":"article","og_title":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - Fatih Boy","og_description":"Bir \u00f6nceki makalemde sizlerle IIS 7 y\u00f6neticisi geni\u015fletilebilir mimarisinden ve kendi mod\u00fcl\u00fcn\u00fcz\u00fc nas\u0131l ekleyebilece\u011finizden bahsetmi\u015ftim. IIS 7 geni\u015fletilebilirlik anlam\u0131nda bize pek \u00e7ok y\u00f6ntem sunmakta ve bu makalemde bu sizlerle IIS7 y\u00f6neticisi a\u011fa\u00e7 hiyerar\u015fisine nas\u0131l yeni bir girdi ekleyebilece\u011finizi payla\u015faca\u011f\u0131m. A\u011fa\u00e7 hiyerar\u015fisine yeni bir girdi olu\u015fturmak i\u00e7in en basit \u015fekliyle a\u015fa\u011f\u0131da s\u0131ralad\u0131\u011f\u0131m 3 temel par\u00e7ac\u0131\u011fa ihtiya\u00e7...Read More","og_url":"https:\/\/fatihboy.com\/en\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/","og_site_name":"Fatih Boy","article_published_time":"2010-06-19T16:44:50+00:00","article_modified_time":"2021-06-14T15:58:10+00:00","og_image":[{"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png","type":"","width":"","height":""}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme","datePublished":"2010-06-19T16:44:50+00:00","dateModified":"2021-06-14T15:58:10+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/"},"wordCount":1332,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png","keywords":["C#","IIS"],"articleSection":["IIS","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/","url":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/","name":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png","datePublished":"2010-06-19T16:44:50+00:00","dateModified":"2021-06-14T15:58:10+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/06\/OzellestirilmisAgacDugumu_thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/iis-7-yoneticisi-agac-hiyerarsisini-genisletme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"IIS 7 Y\u00f6neticisi A\u011fa\u00e7 Hiyerar\u015fisini Geni\u015fletme"}]},{"@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\/33086","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=33086"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33086\/revisions"}],"predecessor-version":[{"id":33409,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33086\/revisions\/33409"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=33086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=33086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=33086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}