protected virtual void Close()
        {
            if (_cancellationPending)
            {
                lock (_abortLockObject)
                {
                    if (_cancellationPending)
                    {
                        _cancellationPending = false;
                        Monitor.Pulse(_abortLockObject);
                    }
                }
            }

            if (_assemblyManager != null)
            {
                _assemblyManager.Dispose();
                _assemblyManager = null;
            }

            _assemblies = null;
            _random     = null;
        }
 protected Builder()
 {
     _random          = new Random();
     _assemblyManager = new BuildAssemblyManager(this);
     _assemblies      = new BuildAssemblyCollection(_assemblyManager);
 }
 internal Enumerator(BuildAssemblyCollection assemblies)
 {
     _assemblies = assemblies;
     _index      = -1;
 }