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);
            }