public void Setup() { removals = new List <RemoveBehavior>(); replacements = new List <ReplaceBehavior>(); coordinator = new BehaviorRegistrationsCoordinator(removals, replacements); }
public PipelineBuilder(PipelineModifications modifications) { coordinator = new BehaviorRegistrationsCoordinator(modifications.Removals, modifications.Replacements); RegisterIncomingCoreBehaviors(); RegisterOutgoingCoreBehaviors(); RegisterAdditionalBehaviors(modifications.Additions); var model = coordinator.BuildRuntimeModel(); Incoming = new List<RegisterStep>(); Outgoing = new List<RegisterStep>(); var behaviorType = typeof(IBehavior<>); var outgoingContextType = typeof(OutgoingContext); var incomingContextType = typeof(IncomingContext); foreach (var rego in model) { if (behaviorType.MakeGenericType(incomingContextType).IsAssignableFrom(rego.BehaviorType)) { Incoming.Add(rego); } if (behaviorType.MakeGenericType(outgoingContextType).IsAssignableFrom(rego.BehaviorType)) { Outgoing.Add(rego); } } }