public static IContainerConfig Configure(FluentIssuerConfig withSymmetricKey = null, FluentConsumerConfig consumerConfig = null) { var c = new TinyIoCContainer(); var cfg = new DefaultContainerConfig(c); if (null != withSymmetricKey) { c.Register <IIssuerConfig>(withSymmetricKey); c.Register(withSymmetricKey.Key); } if (null != consumerConfig) { c.Register <IConsumerConfig>(consumerConfig); foreach (var rule in consumerConfig.IgnoredRules) { c.RemoveRegistration(new TinyIoCContainer.TypeRegistration(typeof(ITokenValidationRule), rule.FullName)); c.RemoveRegistration(new TinyIoCContainer.TypeRegistration(rule.GetType(), string.Empty)); } } ServiceLocator.SetLocatorProvider(() => cfg); return(cfg); }