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());
        }
示例#2
0
    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));
    }