private static IEnumerable <ViewGlobalizationResolver> LoadGlobalizationResolversFromAssembly() { var types = Assembly.GetExecutingAssembly().GetTypes().Where(x => x.IsClass && x.IsSubclassOf(typeof(ViewGlobalizationResolver))); var allResolversList = new List <ViewGlobalizationResolver>(); foreach (var type in types) { ViewGlobalizationResolver instance = (ViewGlobalizationResolver)Activator.CreateInstance(type, true); allResolversList.Add(instance); } return(allResolversList); }
static ViewGlobalizationResolver() { _registeredResolvers = LoadGlobalizationResolversFromAssembly(); if (!_registeredResolvers.Any()) { _defaultResolver = null; return; } else { CultureInfo defaultCulture = WebAppCultureManager.Current.DefaultCulture; ViewGlobalizationResolver defaultResolver = _registeredResolvers.FirstOrDefault(x => x.Culture.Equals(defaultCulture)); if (defaultResolver == null) { throw new Exception(string.Format("The ViewGlobalizationResolver for the default culture {0} needs to be implemented.", defaultCulture.Name)); } } }
public static ViewGlobalizationResolver GetResolver() { CultureInfo culture = Thread.CurrentThread.CurrentUICulture; ViewGlobalizationResolver resolver = _registeredResolvers.FirstOrDefault(x => x.Culture.Equals(culture)); if (resolver != null) { return(resolver); } CultureInfo neutralCulture = CultureHelper.GetNeutralCulture(culture); ViewGlobalizationResolver neutralResolver = _registeredResolvers.FirstOrDefault(x => x.Culture.Equals(neutralCulture)); if (neutralResolver != null) { return(neutralResolver); } return(_defaultResolver); }