В настоящее время я отслеживать количество экземпляров базового класса таким образом:Трассировка экземпляра базового класса
private static int _instanceCount = 0;
protected BaseClass()
{
Interlocked.Increment(ref _instanceCount);
if (_instanceCount > 1)
throw new Exception("multiple instances detected.");
}
Тогда у меня есть дочерние классы с конструктором, как это:
public ChildClass(): base()
{
// Empty Constructor
}
и я получаю исключение конечно. Я могу переместить код с BaseClass
конструктором в конструктор ChildClass
, но это своего рода избыточность (все дети с тем же кодом).
Есть ли способ сделать это в BaseClass
?
Получает исключение означает, что я действительно пытался создать более одного экземпляра ChildClass
в соответствии с приведенным выше кодом?
Какая польза от этого? Это для того, чтобы сделать синглтон? – Nekresh
Звонящий является фабрикой «Синглтон», и я собираюсь удостовериться, что нет дубликатов. – Xaqron
Вы можете поймать исключение и посмотреть, что он говорит. –