Beispiel #1
0
        /// <summary>
        /// Uses the specified application configuration section to set the current
        /// resource connection provider registry object.
        /// </summary>
        /// <param name="configurationSectionName"></param>
        public static void Configure(string configurationSectionName = null)
        {
            configurationSectionName = configurationSectionName ?? DEFAULT_SECTION_NAME;
            var settings = AppConfigurationManager.GetSettings <ResourceConnectionFactorySettings>(configurationSectionName);

            Configure(settings);
        }
        /// <summary>
        /// Uses the specified application configuration section to set the current type resolver object.
        /// </summary>
        /// <param name="configurationSectionName"></param>
        public static void Configure(string configurationSectionName = null)
        {
            configurationSectionName = configurationSectionName ?? DEFAULT_SECTION_NAME;
            var settings = AppConfigurationManager.GetSettings <TypeResolverConfigurationSettings>(configurationSectionName);

            Configure(settings);
        }
        public void ReadAndWriteWorksWithConfigFileAsExpected()
        {
            // --- Arrange
            const string PROVIDER_KEY = "queue";

            // --- Act
            var config = AppConfigurationManager.GetSettings <BackgroundTaskHostSettings>("BackgroundTaskHost1");

            // --- Assert
            config.DefaultContext.ShouldNotBeNull();
            config.DefaultContext.ProviderKey.ShouldEqual(PROVIDER_KEY);
            config.DefaultContext.Properties.ShouldHaveCountOf(3);
            config.DefaultContext.Properties["prop1"].Type.ShouldEqual(typeof(int));
            config.DefaultContext.Properties["prop1"].Value.ShouldEqual("23");
            config.DefaultContext.Properties["prop2"].Type.ShouldEqual(typeof(int));
            config.DefaultContext.Properties["prop2"].Value.ShouldEqual("24");
            config.DefaultContext.Properties["prop3"].Type.ShouldEqual(typeof(string));
            config.DefaultContext.Properties["prop3"].Value.ShouldEqual("23");

            var taskProcessors = config.GetTaskProcessors();

            taskProcessors.ShouldHaveCountOf(3);
            taskProcessors[0].Name.ShouldEqual("Proc1");
            taskProcessors[0].ProcessorType.ShouldEqual(TaskProcessorSettings.SCHEDULED_TYPE);
            taskProcessors[0].TaskType.ShouldEqual(typeof(TaskBase));
            taskProcessors[0].InstanceCount.ShouldEqual(3);
            taskProcessors[0].Context.ShouldNotBeNull();
            taskProcessors[0].Context.Properties.ShouldHaveCountOf(3);
            taskProcessors[0].Context.Properties["prop1"].Type.ShouldEqual(typeof(int));
            taskProcessors[0].Context.Properties["prop1"].Value.ShouldEqual("99");
            taskProcessors[0].Context.Properties["prop2"].Type.ShouldEqual(typeof(int));
            taskProcessors[0].Context.Properties["prop2"].Value.ShouldEqual("100");
            taskProcessors[0].Context.Properties["prop3"].Type.ShouldEqual(typeof(string));
            taskProcessors[0].Context.Properties["prop3"].Value.ShouldEqual("101");
            taskProcessors[0].Properties.ShouldHaveCountOf(2);
            taskProcessors[0].Properties["prop1"].Value.ShouldEqual("1000");
            taskProcessors[0].Properties["prop2"].Value.ShouldEqual("1001");

            taskProcessors[1].Name.ShouldEqual("Proc2");
            taskProcessors[1].ProcessorType.ShouldEqual(TaskProcessorSettings.QUEUED_TYPE);
            taskProcessors[1].TaskType.ShouldEqual(typeof(TaskBase));
            taskProcessors[1].InstanceCount.ShouldEqual(2);
            taskProcessors[1].Context.ShouldBeNull();
            taskProcessors[1].Properties.ShouldHaveCountOf(2);
            taskProcessors[1].Properties["prop1"].Value.ShouldEqual("1000");
            taskProcessors[1].Properties["prop2"].Value.ShouldEqual("1001");

            taskProcessors[2].Name.ShouldEqual("Proc3");
            taskProcessors[2].ProcessorType.ShouldEqual(TaskProcessorSettings.DOUBLE_QUEUED);
            taskProcessors[2].TaskType.ShouldEqual(typeof(TaskBase));
            taskProcessors[2].InstanceCount.ShouldEqual(1);
            taskProcessors[2].Context.ShouldBeNull();
            taskProcessors[2].Properties.ShouldHaveCountOf(0);
        }
        /// <summary>
        /// Configures the configurable part of the service manager from the
        /// specified section
        /// </summary>
        /// <param name="sectionName">Name of the configuration section</param>
        public static void ConfigureFrom(string sectionName)
        {
            var registry = new DefaultServiceRegistry();

            if (AppConfigurationManager.IsSectionDefined(sectionName))
            {
                registry.GetConfigurableContainer().ConfigureFrom(AppConfigurationManager
                                                                  .GetSettings <ServiceContainerSettings>(sectionName));
            }
            ServiceRegistry = registry;
        }