{"id":51,"date":"2005-05-10T10:11:06","date_gmt":"2005-05-10T09:11:06","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T23:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/www.puls200.de\/?p=51","title":{"rendered":"Grausamen Bug behoben"},"content":{"rendered":"<p>Den schreckliche No-Go Bug hier in meinem C# CMS habe ich endlich gefunden. Ich mache das n&auml;mlich mit dem vermeintlich prima simplen Data-Binding Mechanismus. Dagegen ist prinzipiell zwar nichts einzuwenden, aber durch die Komplexit&auml;t dieser schwergewichtigen Objekte gibt es doch ein paar b&ouml;se Fallstricke. So habe ich z.B. einen Handler, der den geschriebenen Text in ein Datenbank-freundliches Byte-Array konvertiert und vice versa. Etwa so:<\/p>\n<div font-familiy=\"Arial\">\n<pre>\nprivate void b_Format(object sender, ConvertEventArgs e) {\n      if(e.DesiredType != typeof(string)) return;\n      if(e.Value == DBNull.Value) {       \n        return;\n      }\n      byte[] bval = (byte[]) e.Value;            \n      e.Value = System.Text.Encoding.Default.GetString(bval,0,bval.Length);\n}\n<\/pre>\n<\/div>\n<p>Der Witz liegt nun darin, da&szlig; man auch den DBNull Wert testet! Falls man das nicht macht, geht die Funktion schief und die Position des CurrencyManagers wird nie aktualisiert. Es gibt aber auch keine Exception, man hat also keinen Plan, was da hinter den Kulissen passiert. Das sind halt so die finsteren Ecken von .NET.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Den schreckliche No-Go Bug hier in meinem C# CMS habe ich endlich gefunden. Ich mache das n&auml;mlich mit dem vermeintlich prima simplen Data-Binding Mechanismus. Dagegen ist prinzipiell zwar nichts einzuwenden, aber durch die Komplexit&auml;t dieser schwergewichtigen Objekte gibt es doch &hellip; <a href=\"https:\/\/www.puls200.de\/?p=51\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/51"}],"collection":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=51"}],"version-history":[{"count":0,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/51\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}