Archive for the ‘.NET’ Category

DateTime und ParseExact

Es kommt ja manchmal vor, dass man ein bestimmt formatiertes Datum in ein DateTime-Objekt verwandeln will.
Im aktuellen Fall war es das Format

2007-03-27T18:33:21.123

Dafür gibt es DateTime.ParseExact und so hat das bei mir funktioniert:

DateTime meinDatum = DateTime.ParseExact(meinString, "yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.InvariantCulture);

In einigen Quellen war zu lesen, man müsse Doppelpunkte und andere Zeichen Quoten, das war jedoch nicht nötig. Funktioniert hat es aber erst, nachdem ich CultureInfo.InvariantCulture als zweiten Parameter angegeben habe.

Transparentes 1×1-Pixel-GIF ausgeben

Response.Clear();
Response.ContentType = “image/png�;
Response.BinaryWrite(new byte[] {0×47, 0×49, 0×46, 0×38, 0×39, 0×61, 0×01, 0×00, 0×01, 0×00, 0×80, 0×00, 0×00, 0xFF, 0xFF, 0xFF, 0×00, 0×00, 0×00, 0×21, 0xF9, 0×04, 0×01, 0×00, 0×00, 0×00, 0×00, 0x2C, 0×00, 0×00, 0×00, 0×00, 0×01, 0×00, 0×01, 0×00, 0×00, 0×02, 0×02, 0×44, 0×01, 0×00, 0x3B});
Response.End();

Transparentes 1×1-Pixel-PNG ausgeben

Response.Clear();
Response.ContentType = “image/png”;
Response.BinaryWrite(new byte[] { 0×89, 0×50, 0x4E, 0×47, 0x0D, 0x0A, 0x1A, 0x0A, 0×00, 0×00, 0×00, 0x0D, 0×49, 0×48, 0×44, 0×52, 0×00, 0×00, 0×00, 0×01, 0×00, 0×00, 0×00, 0×01, 0×08, 0×06, 0×00, 0×00, 0×00, 0x1F, 0×15, 0xC4, 0×89, 0×00, 0×00, 0×00, 0×04, 0×67, 0×41, 0x4d, 0×41, 0×00, 0×00, 0xb1, 0x8e, 0x7c, 0xfb, 0×51, 0×93, 0×00, 0×00, 0×00, 0×20, 0×63, 0×48, 0×52, 0x4d, 0×00, 0×00, 0x7a, 0×25, 0×00, 0×00, 0×80, 0×83, 0×00, 0×00, 0xf9, 0xff, 0×00, 0×00, 0×80, 0xe8, 0×00, 0×00, 0×75, 0×30, 0×00, 0×00, 0xea, 0×60, 0×00, 0×00, 0x3a, 0×97, 0×00, 0×00, 0×17, 0x6f, 0×97, 0xa9, 0×99, 0xd4, 0×00, 0×00, 0×00, 0×10, 0×49, 0×44, 0×41, 0×54, 0×78, 0x9c, 0×62, 0xf8, 0xff, 0xff, 0x3f, 0×03, 0×40, 0×80, 0×01, 0×00, 0×08, 0xfc, 0×02, 0xfe, 0×33, 0xa3, 0xe2, 0×99, 0×00, 0×00, 0×00, 0×00, 0×49, 0×45, 0x4e, 0×44, 0xae, 0×42, 0×60, 0×82});
Response.End();

.NET 2.0 – Decompiler

Auf der Suche nach einem kostenlosen Decompiler für .NET 2.0 habe ich das Tool “Reflector” entdeckt. Es hat genau getan, was ich wollte und musste noch nicht einmal installiert werden. Ich konnte einfach die .exe-Datei auf den Desktop legen und doppelklicken.

Hier ist der Link:

http://www.aisto.com/roeder/dotnet/

Noch etwas zum Page Lifecycle in ASP.NET

Mir fiel vor kurzem auf, dass der Load-Event einer ASP.NET-Seite im Postback-Fall vor dem Abarbeiten der Events der Controls (z.B. Button.Click) ausgeführt wird. Demzufolge eignet sich Page.Load nicht immer dazu, die Seite zu initialisieren, da unter Umständen bestimmte Werte bestimmter Membervariablen noch garnicht geändert sind. Ich habe daraufhin einen Blick auf den Lifecycle der Page geworfen und entdeckt, dass der PreRender-Event der Seite viel besser geeignet ist, die Seite zu initialisieren, da zu diesem Zeitpunkt alle anderen Events abgearbeitet sind. Ich habe daraufhin den Event mit einer eigenen Menthode (analog zu Page_Load) registriert. Wenn man nun z.B. einen Button klickt, reicht es, im Eventhandler der Buttons bestimmte Werte zu verändern. Der PreRender-Event der Seite überimmt dann die Ausgabe im UI.