Как абстрагировать синглтон-класс?

Так я пишу свои синглтон-классы.

public class MyClass
{
    /// <summary>
    /// Singleton
    /// </summary>
    private static MyClass instance;

    /// <summary>
    /// Singleton access.
    /// </summary>
    public static MyClass Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new MyClass();
            }
            return _instance;
        }
    }

    private MyClass() { .... }
}
Как создать шаблон Singleton, который можно использовать повторно?

Шаблоны синглтона представляют следующие проблемы.

Конструкторprivate&nbsp;или жеprotected.Базовый класс не может создать экземпляр унаследованного класса. Таким образом, вы можете повторно использовать общий рефератMyAbstractSingletonClass.Он должен иметь локальное свойство только для чтения, чтобы получить экземпляр.Проблема

Я использую этот шаблон на нескольких классах и всегда должен писать один и тот же код. Как я могу написать что-то, что используется повторно, когда мне нужен синглтон?