Как сделать универсальный базовый класс синглтона 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' в универсальном типе или методеТестовое задание'

Как мне этого добиться?

Ответы на вопрос(2)

Ваш ответ на вопрос