public override IWindow CreateWindowImpl(string name, object[] parameters)
        {
            BuildParameter[] buildParameters = null;
            if (parameters != null)
            {
                buildParameters = new BuildParameter[parameters.Length];
                for (int i = 0; i < parameters.Length; i++)
                {
                    buildParameters[i] = new SimpleBuildPrameter(parameters[i]);
                }
            }

            Window window = _windows.First(win => win.Metadata.Name == name).Resolve(true, buildParameters);

            UiSynchronize.Synchronize.Invoke(() => window.Name = name);

            return new WpfWindow(window);
        }
        /// <summary>
        ///     The build up.
        /// </summary>
        /// <param name="type">
        ///     The type.
        /// </param>
        /// <param name="constructorArguments">
        ///     The constructor arguments.
        /// </param>
        /// <returns>
        ///     The <see cref="object" />.
        /// </returns>
        public object BuildUp(Type type,  ErrorTracer errorTracer, BuildParameter[] buildParameters, params object[] constructorArguments)
        {
            try
            {
                return _buildEngine.BuildUp(type, constructorArguments, errorTracer, buildParameters);
            }
            catch (Exception e)
            {
                if (e is BuildUpException) throw;

                errorTracer.Exception = e;
                throw new BuildUpException(errorTracer);
                //throw new BuildUpException(string.Format("Type Build Error: {0}", type), e);
            }
        }
        /// <summary>
        ///     The build up.
        /// </summary>
        /// <param name="type">
        ///     The type.
        /// </param>
        /// <param name="constructorArguments">
        ///     The constructor arguments.
        /// </param>
        /// <returns>
        ///     The <see cref="object" />.
        /// </returns>
        /// <exception cref="NotImplementedException">
        /// </exception>
        public object BuildUp(Type type, ErrorTracer errorTracer, BuildParameter[] buildParameters, params object[] constructorArguments)
        {
            Contract.Requires<ArgumentNullException>(type != null, "type");
            Contract.Requires<ArgumentNullException>(errorTracer != null, "errorTracer");

            throw new NotImplementedException();
        }