Ejemplo n.º 1
0
        public virtual void SetPluginManifests(ManifestRegistry registry)
        {
            Check.NotNull(registry, nameof(registry), "registry not specified");

            Assembly[] pluginAssemblies = GetPluginAssemblies(_searchPatterns);
            SetManifestTypes(registry, pluginAssemblies);
        }
Ejemplo n.º 2
0
 private void LogManifests(ManifestRegistry registry)
 {
     _logger.LogDebugDetails(BootstrapLogEvents.BOOTSTRAP_EXCEPTION, "Manifests", new
     {
         Host        = registry.AppHostPluginManifests.First().GetType(),
         Application = registry.AppComponentPluginManifests.Select(m => m.GetType()),
         Core        = registry.CorePluginManifests.Select(c => c.GetType())
     });
 }
Ejemplo n.º 3
0
        protected void SetManifestTypes(ManifestRegistry registry, Assembly[] pluginAssemblies)
        {
            IEnumerable <Type> pluginTypes = pluginAssemblies.SelectMany(pa => pa.GetTypes());

            registry.AllManifests = pluginTypes.CreateInstancesDerivingFrom <IPluginManifest>().ToList();

            foreach (IPluginManifest manifest in registry.AllManifests)
            {
                Assembly assembly = manifest.GetType().GetTypeInfo().Assembly;
                manifest.AssemblyName    = assembly.FullName;
                manifest.AssemblyVersion = assembly.GetName().Version.ToString();
                manifest.MachineName     = Environment.MachineName;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates an instance of the application container.  The static Create methods of AppContainer
        /// are the suggested method for creating a new container.  This constructor is usually used for
        /// creating an application container for testing purposes.
        /// </summary>
        /// <param name="typeResolver">The type resolver implementation used to determine the plug-in
        /// components and their types.</param>
        /// <param name="setGlobalReference">Determines if AppContainer.Instance should be set to a
        /// singleton instance of the created container.  Useful for unit testing.</param>
        public AppContainer(ITypeResolver typeResolver, bool setGlobalReference = true)
        {
            Check.NotNull(typeResolver, nameof(ITypeResolver), "type resolver must be specified");

            _application = new CompositeApplication();
            _configs     = new Dictionary <Type, IContainerConfig>();

            _typeResover = typeResolver;

            if (setGlobalReference)
            {
                _instance = this;
            }

            this.Registry = new ManifestRegistry();
        }
Ejemplo n.º 5
0
 public ManifestValidation(ManifestRegistry registry)
 {
     _registry = registry;
 }