public override object GetObject(
     Type requestedType,
     DependencyContainer container,
     Dictionary <string, object> parameters,
     DependencyContainerResolveOptions options)
 {
     try
     {
         return(container.ConstructType(_registerImplementation, Constructor, parameters, options));
     }
     catch (DependencyContainerResolutionException ex)
     {
         throw new DependencyContainerResolutionException(_registerType, ex);
     }
 }
            public override object GetObject(
                Type requestedType,
                DependencyContainer container,
                Dictionary <string, object> parameters,
                DependencyContainerResolveOptions options)
            {
                if (parameters.Count != 0)
                {
                    throw new ArgumentException("Cannot specify parameters for singleton types");
                }

                lock (_singletonLock)
                {
                    if (_current == null)
                    {
                        _current = container.ConstructType(_registerImplementation, Constructor, null, options);
                    }
                }

                return(_current);
            }