JACHYMKO: Je fakt, že v tomhle konkrétním případě ani nebylo nikdy explicitně řečeno, že ten singleton má být lazy-initialized. Pokud ne, tak je tvoje původní řešení samozřejmě zcela v pořádku. Pokud ano, tak buď takhle přes beforefieldinit (a rozhodně je lepší to dělat takhle než double-checked lockingem, IMHO), nebo tím Lazy (což je samozřejmě pro nový kód preferované řešení, ale jen .NET 4+).