Archive for the 'Programming' Category

Initializing ThreadStatic fields

Saturday, May 17th, 2008

Yesterday a friend of mine came across a problem concerning the initialization of ThreadStatic fields. He always encountered a NullReferenceException while accessing those fields.
Here's a sketch of what he tried to do:
PLAIN TEXT
C#:

class Program

{

    [ThreadStatic]

    static StringBuilder aValue = new StringBuilder();

 

    static void Main(string[] args)

    {

        Program p [...]

POETiScher Endbericht

Saturday, February 23rd, 2008

Wie bereits das eine oder andere mal erwähnt, habe ich im Wintersemester 2006/2007 und Sommersemester 2007 im Rahmen meines Informatikstudiums an der Projektgruppe POETS (Process-Oriented Enterprise Transaction Systems) teilgenommen. Diese Projektgruppe fand unter der Leitung von Prof. Rehof am Lehrstuhl 14 des Fachbereichs Informatik an der Universität Dortmund statt. Sie wurde in enger Zusammenarbeit mit [...]

WCF: “Slicing” objects on serialization

Sunday, January 13th, 2008

David Turner asks in a comment on the blog post Polymorphism in WCF contracts if it's possible to deliberately "slice" an instance of the derived type. Instead of passing an instance of a base type to a method he wants to pass an instance of a derived type. When the instance is send to the [...]

Double-Checked Locking in C#

Thursday, January 10th, 2008

Heute hatte ich eher zufällig das Buch Head First Design Patterns in der Hand. Auch eher zufällig bin ich dabei im Kapitel über das Singleton-Pattern beim Double-Checked Locking hängen geblieben. Dort wird darauf aufmerksam gemacht, dass dieses Pattern unter Java 1.4 und früheren Versionen nicht funktioniert.
Da ich dieses Pattern bereits einige male in C# verwendet [...]

Interfaces und abstrakte Klassen als Parameter – Teil 3

Monday, October 22nd, 2007

Die Lösung für ein Problem bin ich noch schuldig geblieben. Die beim letzten mal vorgestellte Lösung hatte den Nachteil, dass ein wichtiges Prinzip der Serviceorientierung nicht eingehalten wurde - Services share schema and contract, not class.
Die Lösung hierfür ist es die möglichen ServiceKnownTypes erst zur Laufzeit zu bestimmen. Folgendes Beispiel erläutert, wie es funktioniert: