private static void CreateFollowerEntry(IServiceProvider context, Type interfaceType, string followermethodName, string initializermethodName)
 {
     if (CorrelationResolver.IsInitializingMember(interfaceType, initializermethodName, null))
     {
         WorkflowQueuingService service = (WorkflowQueuingService) context.GetService(typeof(WorkflowQueuingService));
         FollowerQueueCreator eventListener = new FollowerQueueCreator(followermethodName);
         WorkflowActivityTrace.Activity.TraceEvent(TraceEventType.Information, 0, "Creating follower {0} on initializer {1}", new object[] { interfaceType.Name + followermethodName, interfaceType.Name + initializermethodName });
         ICollection<CorrelationProperty> propertyValues = CorrelationResolver.ResolveCorrelationValues(interfaceType, initializermethodName, null, true);
         EventQueueName queueName = new EventQueueName(interfaceType, initializermethodName, propertyValues);
         WorkflowQueue workflowQueue = null;
         if (service.Exists(queueName))
         {
             workflowQueue = service.GetWorkflowQueue(queueName);
         }
         else
         {
             workflowQueue = service.CreateWorkflowQueue(queueName, true);
             workflowQueue.Enabled = false;
         }
         workflowQueue.RegisterForQueueItemArrived(eventListener);
     }
 }
        private static void CreateFollowerEntry(IServiceProvider context, Type interfaceType, string followermethodName, string initializermethodName)
        {
            if (!CorrelationResolver.IsInitializingMember(interfaceType, initializermethodName, null))
                return;

            WorkflowQueuingService queueSvcs = (WorkflowQueuingService)context.GetService(typeof(WorkflowQueuingService));
            FollowerQueueCreator follower = new FollowerQueueCreator(followermethodName);
            WorkflowActivityTrace.Activity.TraceEvent(TraceEventType.Information, 0, "Creating follower {0} on initializer {1}", interfaceType.Name + followermethodName, interfaceType.Name + initializermethodName);

            ICollection<CorrelationProperty> corrValues = CorrelationResolver.ResolveCorrelationValues(interfaceType, initializermethodName, null, true);
            EventQueueName key = new EventQueueName(interfaceType, initializermethodName, corrValues);
            WorkflowQueue initializerQueue = null;
            if (queueSvcs.Exists(key))
            {
                initializerQueue = queueSvcs.GetWorkflowQueue(key);
            }
            else
            {
                // traversed follower before initializer
                initializerQueue = queueSvcs.CreateWorkflowQueue(key, true);
                initializerQueue.Enabled = false;
            }

            initializerQueue.RegisterForQueueItemArrived(follower);
        }