Esempio n. 1
0
        //------------------------------------------------------------------------------
        static string GetFullSettingNameByPatternAndAddPrefix(string settingName, ISettingsSerializerWishes wishes, Type settingsType,
                                                              SettingNameMode nameMode)
        {
            if (settingsType != null)
            {
                var settingNamePattern = SettingsBaseConfiguration.SettingsNamePattern;

                string updatedSettingName;
                string updatedClassName;
                string updatedNamespaceName;

                if (wishes != null)
                {
                    updatedSettingName   = wishes.RemoveInappropriateSymbols(settingName);
                    updatedClassName     = wishes.RemoveInappropriateSymbols(settingsType.Name);
                    updatedNamespaceName = wishes.RemoveInappropriateSymbols(settingsType.Namespace);
                }
                else
                {
                    updatedSettingName   = settingName;
                    updatedClassName     = settingsType.Name;
                    updatedNamespaceName = settingsType.Namespace;
                }

                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.FieldNamePatternName, updatedSettingName);

                var delimeter = GetSettingNameDelimeter(wishes);
                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.DelimeterPatternName, delimeter.ToString());

                if (String.IsNullOrEmpty(settingsType.Namespace))
                {
                    // remove empty namespace if it doesn't exist
                    settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.NamespacePatternName, "");
                }
                else
                {
                    settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.NamespacePatternName,
                                                                    updatedNamespaceName);
                }

                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.ClassNamePatternName,
                                                                updatedClassName);

                settingName = settingNamePattern;
            }

            var fullSettingName = SettingNameFormatInfo.AddSettingNameModeAndVersion(settingName, wishes, nameMode);

            return(fullSettingName);
        }