Если вам нужен экземпляр с одним глобально (для домена, для потока или для каждого), тогда Singleton - правильный путь.
См. эту статью от Джона Скита, чтобы узнать, как это сделать правильно.
Поскольку вы пытаетесь создать один экземпляр существующего класса, который вы не можете изменить, то есть вы можетене ограничивайте доступ к его конструкторам, единственный путь будет следующим:
- оберните этот класс фабрикой, которая создает единственный экземпляр
- , убедитесь, что весь код использует только ваша фабрика для создания экземпляров этого класса
Если вам нужен один экземпляр в контексте одного класса , то я думаю, что довольно очевидно использовать что-то вродеprivate static readonly
модификаторы или управление его экземпляром любым другим способом, поскольку он будет скрыт от внешнего слова.