Voglio avere un Singleton che verrà istanziato automaticamente all'avvio del programma.Istruzioni: Auto Instantiate Singleton in C#
Quello che intendo per "istanza automatica" è che il codice nel Singleton dovrebbe istanziarsi automaticamente all'avvio del programma senza alcuna chiamata o dichiarazione da parte di altro codice.
quindi voglio qualcosa di simile a quanto segue per istanziare e scrivere "MySingleton crea un'istanza" all'avvio del programma (senza il codice principale di fare qualsiasi cosa) ...
static class MySingleton
{
private static MySingleton self = new MySingleton();
protected MySingleton()
{
System.Console.WriteLine("MySingleton Instantiated");
}
}
ma questa non funziona in quanto C# solo inizializzare i membri statici di una classe quando necessario, cioè quando si accede a/etc.
Quindi cosa devo fare? Può essere fatto?
Non l'ho fatto personalmente con C++ (non ho usato C++ per un po ') ma sono abbastanza sicuro che possa essere fatto in C++ ma non sono sicuro di C#.
Qualsiasi aiuto è apprezzato. Grazie.
Quello che sto davvero voglia di fare con questo è ... ci sarebbero molte di queste classi singleton (e più può essere aggiunto come passa il tempo), ognuno dei quali avrebbe ereditato da una comune (astratto) genitore di classe (alias. PClass).
Il PClass avrebbe un membro statico che è una collezione di PClasses ... e un costruttore per aggiungere stesso per la raccolta ...
Poi, in teoria, tutti i single sarebbe automagicamente essere aggiunti alla collezione (dal momento in cui vengono istanziati viene chiamato il costruttore di base PClass e aggiunge il nuovo oggetto alla raccolta) ... quindi la raccolta può essere utilizzata senza sapere nulla su quali classi child (singleton) sono state implementate e classi new child (singleton) può essere aggiunto in qualsiasi momento senza dover modificare alcun altro codice.
Purtroppo non riesco a far sì che i bambini (singleton) si istanzino ... rovinando il mio piccolo piano, dando luogo a questo post.
Spero di averlo spiegato abbastanza bene.
PS. Sì, mi rendo conto che ci sono cattivi sentimenti nei confronti di Singletons e del loro uso ... ma a volte sono utili, e anche se Satana stesso avesse creato Singleton, mi piacerebbe ancora sapere se il mio problema può essere raggiunto in C#. Grazie gentilmente a tutti voi.
Satan è un Singleton. –