// Application plugins contain a specific application's implementations // and are composed only from other application specific plugins. private void ComposeApplicationPlugins(ITypeResolver typeResolver) { var allAppPluginTypes = GetPluginTypes( PluginTypes.ApplicationPlugin, PluginTypes.HostPlugin).ToArray(); foreach (var plugin in AppPlugins) { typeResolver.ComposePlugin(plugin, allAppPluginTypes); } typeResolver.ComposePlugin(HostPlugin, allAppPluginTypes); }
//-------------------------------------------------- //--Container Composition //-------------------------------------------------- // Core plugins are composed from all other plugin types since they implement // reusable cross-cutting concerns. private void ComposeCorePlugins(ITypeResolver typeResolver) { BootstrapLogger.Add(LogLevel.Debug, "Settings Plugin Module Properties Referencing Concrete Implementations."); var allPluginTypes = GetPluginTypes().ToArray(); foreach (var plugin in CorePlugins) { typeResolver.ComposePlugin(plugin, allPluginTypes); } }
public void ComposePlugin(IPlugin plugin, IEnumerable <Type> fromPluginTypes) { _baseResolver.ComposePlugin(plugin, fromPluginTypes); }