( asch | 2006. 12. 21., cs – 11:03 )

SZERK: jut eszembe, esetleg Java-ban ismersz hasonlo constructor-on beluli ellenorzest? Mert mar a topik bekuldese elott is az jart az eszemben, hogy ha van ra Java-s megoldas, azt meg lehetne problani egy intelligensebb java2csharp-pal atkonvertalni.

A Java, meg a C# minden lényeges szempontból ugyanaz. Ráadásul mivel amit Javában írnál C#-ra fordulna, nincs értelme Javában megírni, megírhatod C#-ban is :-).

Amúgy még mindig nem világos nekem ez a "konstruktoron belüli" para. És még mindig azt mondom (bár eddig nem mondtam, csak gondoltam rá :-)), hogy ha kell dinamikusan osztályt betölteni, akkor álalában a Factory mintát szokás használni. ami kb így néz ki:
interface IMyFactory
{
// Ha exceptionnel jön vissza, akkor "szerződés szerint" a hívó fél dolga az erőforrás felszabadítása
IMyOjjekt createOjjekt(Object arg) throws CreationException;
}

interface IMyOjjekt
{

Object doTheJob();

void freeTheResources();
}

Vagy gondolhatsz a gyártott ojjektumra úgy is, mint valami sessiönre, amit mindenképp le kell zárni. A lényeg, hogy ha nem kényelmes kívülről a konstruktoros megoldás, akkor ne használd, hanem csinálj egy normális interfészt, a meglévőket meg igenis wrappeld le. Az IDisposeable csak annyi könnyebséget jelent, hogy használhatod a using nylevi konstrukciót (ami azonos a try{}finally{ojjekt.dispose();} konstrukcióval).

>>Azonban ezek közül már van, ami meg van írva, amibe nem tudunk belenyúlni, tehát nem >>világos, hogy ő hogy jelzi a saját esetleges jogosulatlanságát.

>Kifele sehogyan, belsoleg naplozza a hibas modult.
És naplózni elég? Az erőforráskezelést megoldja ez jól?