void InitializeFromConfiguration(RoutingConfiguration configuration) { Contract.Requires(configuration != null); this.topicTemplateTable = new UriTemplateTable( BaseUri, (from route in configuration.InboundRoutes from template in route.Templates select new KeyValuePair<UriTemplate, object>(new UriTemplate(template, false), route))); this.topicTemplateTable.MakeReadOnly(true); this.routeTemplateMap = configuration.OutboundRoutes.ToDictionary(x => x.Type, x => new UriPathTemplate(x.Template)); }
public object Create(object parent, object configContext, XmlNode section) { var configuration = new RoutingConfiguration(); configuration.InboundRoutes.AddRange(section .OfType<XmlElement>() .Where(x => "inboundRoute".Equals(x.Name, StringComparison.OrdinalIgnoreCase)) .Select(route => InboundRouteDefinition.Create( route.OfType<XmlElement>().Where(x => "template".Equals(x.Name, StringComparison.OrdinalIgnoreCase)).Select(x => x.InnerText), ParseInboundRouteType(route.GetAttribute("to"))))); configuration.OutboundRoutes.AddRange(section .OfType<XmlElement>() .Where(x => "outboundRoute".Equals(x.Name, StringComparison.OrdinalIgnoreCase)) .Select(route => OutboundRouteDefinition.Create( ParseOutboundRouteType(route.GetAttribute("from")), route.OfType<XmlElement>().Single(x => "template".Equals(x.Name, StringComparison.OrdinalIgnoreCase)).InnerText))); return configuration; }
public ConfigurableMessageRouter(RoutingConfiguration configuration) { this.InitializeFromConfiguration(configuration); }
public TopicNameRouter(RoutingConfiguration configuration) { this.InitializeFromConfiguration(configuration); }