static IManageSubscriptions CreateSubscriptionManager(TransportInfrastructure transportInfra) { var subscriptionInfra = transportInfra.ConfigureSubscriptionInfrastructure(); var factoryProperty = typeof(TransportSubscriptionInfrastructure).GetProperty("SubscriptionManagerFactory", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); var factoryInstance = (Func <IManageSubscriptions>)factoryProperty.GetValue(subscriptionInfra, new object[0]); return(factoryInstance()); }
IRouter CreateSubscribeRouter(TransportInfrastructure transportInfrastructure) { if (transportInfrastructure.OutboundRoutingPolicy.Publishes == OutboundRoutingType.Unicast) { return(new MessageDrivenSubscribeRouter(subscriptionStorage, endpointInstances)); } var subscriptionInfra = transportInfrastructure.ConfigureSubscriptionInfrastructure(); var factoryProperty = typeof(TransportSubscriptionInfrastructure).GetProperty("SubscriptionManagerFactory", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); var factoryInstance = (Func <IManageSubscriptions>)factoryProperty.GetValue(subscriptionInfra, new object[0]); var subscriptionManager = factoryInstance(); return(new NativeSubscribeRouter(subscriptionStorage, subscriptionManager)); }