Пример #1
0
        /// <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);
        }
Пример #3
0
 /// <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();