Exemple #1
0
        public static IConfigurationOptions WithNamingScheme(this IConfigurationOptions configurationOptions,
                                                             ConfigurationOptionDelegates.CustomKeyNameFunc resolverFunction)
        {
            ConfigurationOptionDelegates.CustomKeyNameFunc currentResolverFunc = null;

            currentResolverFunc = configurationOptions.CustomKeyName;
            if (currentResolverFunc == null)
            {
                configurationOptions.CustomKeyName = resolverFunction;
            }
            else
            {
                // Chain the functions
                configurationOptions.CustomKeyName = (type, name) =>
                {
                    var customName = currentResolverFunc.Invoke(type, name);
                    return(resolverFunction.Invoke(type, customName));
                };
            }

            return(configurationOptions);
        }
Exemple #2
0
        public static IConfigurationOptions WithGlobalPrefix(this IConfigurationOptions configurationOptions,
                                                             string prefix,
                                                             Type[] onlyForTheseTypes = null,
                                                             Type[] exceptTheseTypes  = null)
        {
            ConfigurationOptionDelegates.CustomKeyNameFunc keyNameResolverFunc = (type, name) =>
            {
                if (onlyForTheseTypes != null && !onlyForTheseTypes.Contains(type))
                {
                    return(name);
                }

                if (exceptTheseTypes != null && exceptTheseTypes.Contains(type))
                {
                    return(name);
                }

                return(new KeyName(prefix, name.QualifiedKeyName));
            };

            return(configurationOptions.WithNamingScheme(keyNameResolverFunc));
        }