/// <summary>
        /// Registers a new <see cref="IDependencyResolverType"/> in the <see cref="IDependencyService"/>
        /// </summary>
        /// <param name="resolverType">The dependency resolver type that shall be registered</param>
        public void RegisterResolverType(IDependencyResolverType resolverType)
        {
            if (null == resolverType)
            {
                throw new ArgumentNullException("resolverType");
            }

            DependencyResolverFactory.RegisterResolverType(resolverType);
        }
        /// <summary>
        /// Bootstrapps the dependency service environment
        /// </summary>
        public static void Initialize()
        {
            //TODO this is just a hack. we should use reflection to load the plugins properly without being dependend on the references
            if (!_isInitialized)
            {
                DependencyResolverFactory.RegisterResolverType(new BinaryRepositoryResolverType());
                DependencyResolverFactory.RegisterResolverType(new BuildResultResolverType());
                DependencyResolverFactory.RegisterResolverType(new VNextBuildResultResolverType());
                DependencyResolverFactory.RegisterResolverType(new FileShareResolverType());
                DependencyResolverFactory.RegisterResolverType(new SourceControlCopyResolverType());
                DependencyResolverFactory.RegisterResolverType(new SourceControlMappingResolverType());
                DependencyResolverFactory.RegisterResolverType(new SubversionResolverType());

                _isInitialized = true;
            }
        }
 /// <summary>
 /// Gets all dependency resolver types which are registered in the <see cref="IDependencyService"/>
 /// </summary>
 /// <returns>A collection of all available <see cref="IDependencyResolverType"/></returns>
 public IEnumerable <IDependencyResolverType> GetDependencyResolvers()
 {
     return(DependencyResolverFactory.GetAllResolverTypes());
 }