/// <inheritdoc/>
        public IDecideTypesForStrings Clone()
        {
            IDecideTypesForStrings clone = CloneImpl(Culture);

            clone.Settings = Settings.Clone();
            return(clone);
        }
        /// <summary>
        /// Initializes a new factory and populates decider <see cref="Dictionary"/>
        /// </summary>
        /// <param name="culture"></param>
        public TypeDeciderFactory(CultureInfo culture)
        {
            Settings = new GuessSettingsFactory().Create();

            var deciders = new IDecideTypesForStrings[]
            {
                new BoolTypeDecider(culture)
                {
                    Settings = Settings
                },
                new IntTypeDecider(culture)
                {
                    Settings = Settings
                },
                new DecimalTypeDecider(culture)
                {
                    Settings = Settings
                },

                new NeverGuessTheseTypeDecider(culture)
                {
                    Settings = Settings
                },

                new TimeSpanTypeDecider(culture)
                {
                    Settings = Settings
                },
                new DateTimeTypeDecider(culture)
                {
                    Settings = Settings
                },
            };

            foreach (IDecideTypesForStrings decider in deciders)
            {
                foreach (Type type in decider.TypesSupported)
                {
                    Dictionary.Add(type, decider);
                }
            }
        }
示例#3
0
        /// <summary>
        /// Initializes a new factory and populates decider <see cref="Dictionary"/>
        /// </summary>
        public TypeDeciderFactory()
        {
            var deciders = new IDecideTypesForStrings[]
            {
                new BoolTypeDecider(),
                new IntTypeDecider(),
                new DecimalTypeDecider(),

                new NeverGuessTheseTypeDecider(),

                new TimeSpanTypeDecider(),
                new DateTimeTypeDecider(),
            };

            foreach (IDecideTypesForStrings decider in deciders)
            {
                foreach (Type type in decider.TypesSupported)
                {
                    Dictionary.Add(type, decider);
                }
            }
        }