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); }
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)); }