{"id":68,"date":"2007-04-18T00:22:00","date_gmt":"2007-04-17T22:22:00","guid":{"rendered":"\/post\/VSNet-paketlerinde-SolutionEventsi-dinlemek.aspx"},"modified":"2007-04-18T00:22:00","modified_gmt":"2007-04-17T22:22:00","slug":"vs-net-paketlerinde-solutioneventsi-dinlemek","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/vs-net-paketlerinde-solutioneventsi-dinlemek\/","title":{"rendered":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek"},"content":{"rendered":"<p>&nbsp;&nbsp;&nbsp; Yazd\u0131\u011f\u0131m Visual Studio eklentilerinden birisinde uygulaman\u0131n kapanmas\u0131n\u0131 dinleyerek, bazen Visual Studio&#8217;nun kapanmas\u0131n\u0131 iptal etmem gekiyordu. Teorik olarak yap\u0131lmas\u0131 gereken kolayd\u0131, SolutionEvents&#8217;in i\u00e7erisinde bulunan QueryCloseSolution olay\u0131n\u0131 dinleyerek bu olay oldu\u011funda ilgili i\u015f mant\u0131\u011f\u0131 kodunu i\u015fletecek ve fCancel de\u011fi\u015fkenine true veya false \u015feklinde gerekli boolean de\u011feri atayacakt\u0131m; \u00f6ylede yapt\u0131m. Kodu derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda o zamanlar anlayamad\u0131\u011f\u0131m bir \u015fekilde zaman zaman tam istedi\u011fim gibi \u00e7al\u0131\u015f\u0131rken bazen de hi\u00e7 bir \u015fekilde \u00e7al\u0131\u015fm\u0131yordu. Fazla \u00fczerinde duramad\u0131\u011f\u0131m bu hata kafam\u0131 yine de kurcalamaya devam ediyordu.<\/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=\"\">  void Initialize() {\n   DTE dte = (DTE)serviceProvider.GetService(typeof(DTE));\n   EnvDTE.SolutionEvents solutionEvents = dte.Events.SolutionEvents;\n   solutionEvents.QueryCloseSolution += new EnvDTE._dispSolutionEvents_QueryCloseSolutionEventHandler(SolutionEvents_QueryCloseSolution);\n  }\n\n  void SolutionEvents_QueryCloseSolution(ref bool fCancel) {\n    fCancel = &lt;\u0130\u015f mant\u0131\u011f\u0131 sonucu burda iptal edilebilir ya da kapanmaya izin verilebilir>;\n  }<\/pre>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Yan\u0131t asl\u0131nda basitmi\u015f; burda SolutionEvents, Initialize fonksiyonu i\u00e7erisinde \u00e7\u0131k\u0131ld\u0131\u011f\u0131nda otomatik olarak silinmek \u00fczere i\u015faretleniyor ve bir s\u00fcre sonra da Garbage Collector taraf\u0131ndan haf\u0131zadan tamamen at\u0131l\u0131yormu\u015f. Dolay\u0131s\u0131yla da bir s\u00fcre sonra biz SolutionEvents \u00fczerindeki hi\u00e7 bir olay\u0131 dinleyemiyoruz. Bu durumda yap\u0131lmas\u0131 gereken ise; bunu fonksiyon i\u00e7erisindeki de\u011fi\u015fkende tutmak yerine s\u0131n\u0131f&#8217;a ta\u015f\u0131yorak Garbage Collector taraf\u0131nda haf\u0131zadan at\u0131lmas\u0131n\u0131 engellemekten ibaret.<\/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=\"\"> private EnvDTE.SolutionEvents solutionEvents;\n\n void Initialize() {\n  DTE dte = (DTE)serviceProvider.GetService(typeof(DTE));\n  solutionEvents = dte.Events.SolutionEvents;\n  solutionEvents.QueryCloseSolution += new EnvDTE._dispSolutionEvents_QueryCloseSolutionEventHandler(SolutionEvents_QueryCloseSolution);\n }\n\n void SolutionEvents_QueryCloseSolution(ref bool fCancel) {\n   fCancel = &lt;\u0130\u015f mant\u0131\u011f\u0131 sonucu burda iptal edilebilir ya da kapanmaya izin verilebilir>;\n }<\/pre>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp;&nbsp; Yazd\u0131\u011f\u0131m Visual Studio eklentilerinden birisinde uygulaman\u0131n kapanmas\u0131n\u0131 dinleyerek, bazen Visual Studio&#8217;nun kapanmas\u0131n\u0131 iptal etmem gekiyordu. Teorik olarak yap\u0131lmas\u0131 gereken kolayd\u0131, SolutionEvents&#8217;in i\u00e7erisinde bulunan QueryCloseSolution olay\u0131n\u0131 dinleyerek bu olay oldu\u011funda ilgili i\u015f mant\u0131\u011f\u0131 kodunu i\u015fletecek ve fCancel de\u011fi\u015fkenine true veya false \u015feklinde gerekli boolean de\u011feri atayacakt\u0131m; \u00f6ylede yapt\u0131m. Kodu derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda o zamanlar anlayamad\u0131\u011f\u0131m bir&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\">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,92],"tags":[44],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-turkce","category-visual_studio","tag-visual-studio"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>VS.Net paketlerinde SolutionEvents\u2019i dinlemek - 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\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VS.Net paketlerinde SolutionEvents\u2019i dinlemek - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp;&nbsp; Yazd\u0131\u011f\u0131m Visual Studio eklentilerinden birisinde uygulaman\u0131n kapanmas\u0131n\u0131 dinleyerek, bazen Visual Studio&#8217;nun kapanmas\u0131n\u0131 iptal etmem gekiyordu. Teorik olarak yap\u0131lmas\u0131 gereken kolayd\u0131, SolutionEvents&#8217;in i\u00e7erisinde bulunan QueryCloseSolution olay\u0131n\u0131 dinleyerek bu olay oldu\u011funda ilgili i\u015f mant\u0131\u011f\u0131 kodunu i\u015fletecek ve fCancel de\u011fi\u015fkenine true veya false \u015feklinde gerekli boolean de\u011feri atayacakt\u0131m; \u00f6ylede yapt\u0131m. Kodu derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda o zamanlar anlayamad\u0131\u011f\u0131m bir...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2007-04-17T22:22:00+00:00\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"VS.Net paketlerinde SolutionEvents\u2019i dinlemek\",\"datePublished\":\"2007-04-17T22:22:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\"},\"wordCount\":198,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"keywords\":[\"Visual Studio\"],\"articleSection\":[\"T\u00fcrk\u00e7e\",\"Visual Studio\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\",\"url\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\",\"name\":\"VS.Net paketlerinde SolutionEvents\u2019i dinlemek - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"datePublished\":\"2007-04-17T22:22:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VS.Net paketlerinde SolutionEvents\u2019i dinlemek\"}]},{\"@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":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek - 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\/vs-net-paketlerinde-solutioneventsi-dinlemek\/","og_locale":"en_US","og_type":"article","og_title":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek - Fatih Boy","og_description":"&nbsp;&nbsp;&nbsp; Yazd\u0131\u011f\u0131m Visual Studio eklentilerinden birisinde uygulaman\u0131n kapanmas\u0131n\u0131 dinleyerek, bazen Visual Studio&#8217;nun kapanmas\u0131n\u0131 iptal etmem gekiyordu. Teorik olarak yap\u0131lmas\u0131 gereken kolayd\u0131, SolutionEvents&#8217;in i\u00e7erisinde bulunan QueryCloseSolution olay\u0131n\u0131 dinleyerek bu olay oldu\u011funda ilgili i\u015f mant\u0131\u011f\u0131 kodunu i\u015fletecek ve fCancel de\u011fi\u015fkenine true veya false \u015feklinde gerekli boolean de\u011feri atayacakt\u0131m; \u00f6ylede yapt\u0131m. Kodu derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda o zamanlar anlayamad\u0131\u011f\u0131m bir...Read More","og_url":"https:\/\/fatihboy.com\/en\/vs-net-paketlerinde-solutioneventsi-dinlemek\/","og_site_name":"Fatih Boy","article_published_time":"2007-04-17T22:22:00+00:00","author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek","datePublished":"2007-04-17T22:22:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/"},"wordCount":198,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"keywords":["Visual Studio"],"articleSection":["T\u00fcrk\u00e7e","Visual Studio"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/","url":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/","name":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"datePublished":"2007-04-17T22:22:00+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/vs-net-paketlerinde-solutioneventsi-dinlemek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"VS.Net paketlerinde SolutionEvents\u2019i dinlemek"}]},{"@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\/68","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=68"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}