private IRouteTableProvider CreateRouteTableProvider() { if (Provider == null) { return(null); } Type providerType = Type.GetType(Provider.Type, false, true); if (providerType == null) { return(null); } if (!typeof(IRouteTableProvider).IsAssignableFrom(providerType)) { throw Error.IncompatibleRouteTableProvider(providerType); } IRouteTableProvider provider = (IRouteTableProvider)ServiceLocator.Instance.GetService(providerType); ValueDictionary settings = new ValueDictionary(); foreach (string key in Provider.Settings.AllKeys) { settings.Add(key, Provider.Settings[key].Value); } provider.Init(settings); return(provider); }
protected virtual void EnsureRouteTableLoaded() { IRouteTableProvider provider = RouteTable.Provider; RouteTableProviderResult result = provider.GetRouteTable(); RouteTable.Routes.Variables.Merge((IValueSet)result.Variables); RouteTable.Routes.AddRange(result.Routes); }