/// <summary> /// Loads conventions based on Extensibility framework's stock rules as well as discovered <see cref="IConventionProvider"/> /// parts using the provided container configuration. /// </summary> /// <param name="strategy">The current plugin context strategy loading the conventions.</param> /// <param name="configuration">The container configuration to load the rule providers from.</param> /// <returns>The resulting <see cref="ConventionBuilder"/> loaded with all provided rules.</returns> public static ConventionBuilder LoadConventions(this IPluginContextStrategy strategy, ContainerConfiguration configuration) { var conventions = new ConventionBuilder(); using (var container = configuration.CreateContainer()) { var conventionProviders = container.GetExports <IConventionProvider>(); foreach (var conventionProvider in conventionProviders) { conventionProvider.ConfigureRules(conventions); } } return(conventions); }
public GlobalPluginContextStrategyTests() { var path = Path.Combine(Environment.CurrentDirectory, "testPlugins"); _strategy = new GlobalPluginContextStrategy(path); }
/// <summary> /// Initializes a new instance of the <see cref="PluginContext"/> class. /// </summary> /// <param name="strategy">The initialization strategy used to initialize the context.</param> public PluginContext(IPluginContextStrategy strategy) => _container = strategy.CreateContainer();