Singleton Pattern per C#
piccolo esempio di pattern singleton thread safe per C#. dal momento che lo uso molto spesso e che devo copiarmelo di qua e di là, ho deciso di scriverlo sul sito, che almeno so sempre dove trovarlo =D
ciao
public class Oggetto
{
#region Singleton
//singleton pattern
private static bool _isInit;
private static Exception _error;
private static volatile Oggetto _instance = null;
private static object _syncObj = new object();
///
/// Get the Oggetto Instance
///
public static Oggetto Instance
{
get
{
if (_instance == null)
{
lock (_syncObj)
{
if (_instance == null)
_instance = new Oggetto();
}
}
if (_isInit)
return _instance;
else
throw new Exception(
"Error initializing Oggetto", _error);
}
}
private Oggetto()
{
try
{
InitData();
_isInit = true;
}
catch (Exception ex)
{
_isInit = false;
_error = ex;
}
}
#endregion
private void InitData()
{
// qua ci va l'inizializzazione
}
// comodo per reinizializzare tutto, se serve
internal void RefreshCache()
{
this.InitData();
}
}
c#, dotnet, lavoro, pattern, singleton, best practices
Tag:best-practices, c#, dotnet, lavoro, pattern, singleton
















Articoli (RSS)