public virtual void SetPluginManifests(ManifestRegistry registry) { Check.NotNull(registry, nameof(registry), "registry not specified"); Assembly[] pluginAssemblies = GetPluginAssemblies(_searchPatterns); SetManifestTypes(registry, pluginAssemblies); }
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()) }); }
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; } }
/// <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(); }
public ManifestValidation(ManifestRegistry registry) { _registry = registry; }