C # Singleton com construtor que aceita parâmetros

Eu quero criar uma classe estática ou classe singleton que aceita uma referência a outro objeto em seu construtor. Classes estáticas estão fora, mas eu imaginei que poderia criar um singleton que aceita parâmetros em seu construtor. Até agora não tive sorte em descobrir ou pesquisar a sintaxe. Isso é possível? se sim, como faço isso?

Desculpe por nenhum exemplo no post inicial, eu escrevi isso com pressa. Tenho a sensação de que minha resposta já está nas respostas, mas aqui está um esclarecimento do que eu quero fazer:

Eu quero criar uma única instância de um tipo específico (disse Singleton), mas essa única instância do tipo precisa manter uma referência a um objeto diferente.

Por exemplo, talvez eu queira criar uma classe "Status" de Singleton, que possua um objeto StringBuilder e um método Draw () que possa ser chamado para gravar o referido StringBuilder na tela. O método Draw () precisa saber sobre o meu GraphcisDevice para desenhar. Então, o que eu quero fazer isso:

public class Status
{
private static Status _instance;
private StringBuilder _messages;
private GraphicsDevice _gDevice;

private Status(string message, GraphicsDevice device)
{
    _messages.Append(message);
    _gDevice = device;
}

// The following isn't thread-safe

// This constructor part is what I'm trying to figure out
public static Status Instance // (GraphicsDevice device) 
    {
    get
        {
        if (_instance == null)
            {
            _instance = new Status("Test Message!", device); 
            }
        return _instance;
        }
    }

public void UpdateMessage
...

public void Draw()
    {
    // Draw my status to the screen, using _gDevice and _messages
    }
}  

Em todo o código, recupero meu Singleton de Status e chamo seu método UpdateMessage ().

private Status _status = Status.Instance; // + pass reference to GraphicsDevice
_status.UpdateMessage("Foo!");

Então, na minha classe principal, eu também recupero o singleton e o desenho:

_status.Draw();

Sim, isso significa que sempre que eu recuperar o singleton, preciso fazer isso passando a referência para o GraphicsDevice, caso seja a primeira vez que eu instancie o Singleton. E eu poderia usar meios diferentes para recuperar algo tão fundamental quanto o GraphicsDevice em minha classe Singleton, por exemplo, registrar um serviço em outro lugar e obter esse serviço na classe Status. Este exemplo foi bem inventado - estou tentando descobrir sealguma coisa como este padrão é possível em primeiro lugar.

questionAnswers(5)

yourAnswerToTheQuestion