public void Process(Type type, PluginGraph graph) { if (typeof(IInterceptor<>).IsAssignableFrom(type)) { var interceptedType = type.GetGenericArguments().First(); var allSubclasses = CPR.Config.Assemblies.SelectMany(x => x.GetTypes()).Where(t => t.IsSubclassOf(interceptedType)); foreach (var subclass in allSubclasses) { Debug.WriteLine("Registering subclass " + subclass.ToString() + " to " + type.ToString()); var c = subclass; graph.Configure(x => x.For(c).Use(type)); } } }