コード例 #1
0
        public void CanResolveUsingCustomParser()
        {
            var count = 0;

            var options = ConfigurationOptions.Create();

            options.WithParser((type, parser) =>
            {
                type.ShouldBe(typeof(SomeDecimalSetting));
                parser.ShouldNotBeNull();
                count.ShouldBe(0);
                count++;
                return(parser);
            });

            // Chaining multiple functions
            options.WithParser((type, parser) =>
            {
                type.ShouldBe(typeof(SomeDecimalSetting));
                parser.ShouldNotBeNull();
                count.ShouldBe(1);
                return(parser);
            });

            var configurationFactory = ConfigurationFactoryCreator.Create(options);

            SomeDecimalSetting config = configurationFactory.CreateConfigurationSetting(typeof(SomeDecimalSetting));

            config.Value.ShouldBeOfType <decimal>();
            config.Value.Equals(decimal.Parse("1.2345")).ShouldBeTrue();
        }
コード例 #2
0
        public void CanResolveDecimalSetting()
        {
            SomeDecimalSetting config = _configurationFactory.CreateConfigurationSetting(typeof(SomeDecimalSetting));

            config.Value.ShouldBeOfType <decimal>();
            config.Value.Equals(decimal.Parse("1.2345")).ShouldBeTrue();
        }
コード例 #3
0
        public void CanResolveSettingWithCustomName()
        {
            var options = ConfigurationOptions.Create();

            options.WithNamingScheme((type, name) =>
            {
                if (type == typeof(SomeDecimalSetting))
                {
                    return(new KeyName("SomeSection:", name.QualifiedKeyName));
                }

                return(name);
            });

            var configurationFactory = ConfigurationFactoryCreator.Create(options);

            SomeDecimalSetting config = configurationFactory.CreateConfigurationSetting(typeof(SomeDecimalSetting));

            config.Value.ShouldBeOfType <decimal>();
            config.Value.Equals(decimal.Parse("0.12345")).ShouldBeTrue();
        }