protected void Toggle (bool isLastRef) { WeakReference weak = reference as WeakReference; if (!isLastRef) { if (weak != null && weak.IsAlive) reference = weak.Target; } else { if (weak == null) reference = new WeakReference (reference); } }