Как сделать универсальный базовый класс синглтона C # [duplicate]
На этот вопрос уже есть ответ здесь:
Какие'хороший потокобезопасный шаблон шаблона синглтона в C # 22 ответаЯ пытаюсь создать общий базовый класс синглтона, как
public class SingletonBase where T : class, new()
{
private static object lockingObject = new object();
private static T singleTonObject;
protected SingletonBase()
{
}
public static T Instance
{
get
{
return InstanceCreation();
}
}
public static T InstanceCreation()
{
if(singleTonObject == null)
{
lock (lockingObject)
{
if(singleTonObject == null)
{
singleTonObject = new T();
}
}
}
return singleTonObject;
}
}
Но я должен сделать конструктор публичным в производном.
public class Test : SingletonBase
{
public void A()
{
}
private Test()
: base()
{ }
}
Ошибка компиляции: '
Тестовое задание' должен быть неабстрактным типом с открытым конструктором без параметров, чтобы использовать его в качестве параметра 'T' в универсальном типе или методеТестовое задание'
Как мне этого добиться?