Exemplo n.º 1
0
        /// <summary>
        ///     Initializes the loader using the default values.
        /// </summary>
        public Loader()
        {
            _containerLoader = this.CreateDefaultContainerLoader();

            // Load everything else into the container
            var hostAssembly = typeof(Loader).Assembly;

            QueuedActions.Add(container => container.LoadFrom(hostAssembly));

            // Make sure that the plugins are only added once
            if (!Plugins.HasElementWith(p => p is AutoPropertyInjector))
            {
                Plugins.Add(new AutoPropertyInjector());
            }

            if (!Plugins.HasElementWith(p => p is AutoMethodInjector))
            {
                Plugins.Add(new AutoMethodInjector());
            }

            if (!Plugins.HasElementWith(p => p is AutoFieldInjector))
            {
                Plugins.Add(new AutoFieldInjector());
            }

            // Add the initializer to the end of
            // the instantiation pipeline
            if (!Plugins.HasElementWith(p => p is InitializerPlugin))
            {
                Plugins.Add(new InitializerPlugin());
            }

            FileLoaders.Add(_containerLoader);
        }
 public static void QueueAction(QueueActionBase action)
 {
     QueuedActions.Add(action);
 }