Ho una classe con un costruttore statico.Come assicurarsi che un costruttore statico venga chiamato senza chiamare alcun membro
Voglio che il costruttore statico venga chiamato senza chiamare o utilizzare nessuno dei suoi membri, ma solo se il costruttore non è stato già chiamato.
Ho provato a utilizzare la riflessione. Con la riflessione posso invocare il costruttore statico (molte volte), ma non riesco a scoprire se è già stato chiamato prima.
Come posso fare?
EDIT
Questa non è solo una classe di cui sto parlando, potrebbe essere di più. Diciamo, tutte le classi contrassegnate con un attributo speciale.
impostare un flag. Dovresti solo eseguire un costruttore statico se stai impostando alcuni stati statici, quindi imposta quello stato, e vedi solo se è impostato se il costruttore viene eseguito di nuovo. –
@Robert: ho bisogno che sia una soluzione generica. Non so in anticipo quante classi e quali classi. Flogging non aiuterà dal momento che .NET non imposterà quel flag quando chiama il costruttore. –
Mi hai incuriosito ora. Perché ritieni sia necessario eseguire il costruttore * prima * ogni membro viene chiamato, se è quello che farà comunque? (il costruttore statico verrà richiamato appena prima dell'esecuzione del primo metodo o della chiamata di proprietà. Qualsiasi stato statico è irrilevante finché non viene toccato il primo metodo o proprietà). –